2017-02-09 6 views
0

私は投稿するたびにwebmethodに投稿するajax呼び出しを試みました。投稿するたびにaspxページ全体が返されます。ここで は、Ajax呼び出しです:Ajax投稿完全なaspxページを返す

var $jq =jQuery.noConflict(); 
    $jq.ajax({ 
     type: "POST", 
     url: "Default2.aspx/sortxml", 
    data: xmlDoc, 

     complete: function (xhr, status) { 
    error: function (xhr, status, text) { 
       console.log(xhr.status); 
       console.log(xhr.text); 
       console.log(xhr.responseText); 
      } 

     if (status === 'error' || !xhr.responseText) { 

      alert(xhr.responseText); 
      document.getElementById("response").value = xhr.responseText; 
     } 
     else { 
      var data = xhr.responseText; 
      //alert(data); 
      document.getElementById("response").value = data; 

     } 
    } 

、ここではWebMethodのですが、私はこれはそれが引っ張る形「Default2.aspx」

[System.Web.Services.WebMethod()] 
    public static string sortxml() 
{ 
return ("hi");} 

というページの背後にあるコードの上に座っている大規模なそれを簡素化ここからのデータは:

<form id="form1" runat="server"> 
    <asp:ScriptManager ID="ScriptManager2" runat="server"></asp:ScriptManager> 

<button onclick="cmdButtonSend();" type="button" >Call Component Engine</button> 
    <br /><p> 
<asp:TextBox id="TextInput" runat="server" TextMode="MultiLine" Wrap="false" ></asp:TextBox> 

     </p> 
    <asp:TextBox id="response" runat="server" TextMode="MultiLine" Wrap="true" ></asp:TextBox> 
    <p class ="tim"> Set Timeout 
    <asp:TextBox id="timer1" runat="server" TextMode="MultiLine" Wrap="false" ></asp:TextBox></p> 

      </form> 

私がajax呼び出しを実行すると、フォームがオンになっているaspxページ全体が返されます。

これはなぜですか?

EDIT:Ajax呼び出しは、cmdButtonSend()の一部として呼び出されるJavaScriptメソッドの一部です。方法。

+0

こんにちは、いくつかのアドバイスi 1)コードブロックを修正する - 他の人があなたを助けるために時間を費やすことを期待するならば、インデントなどの問題を解決するのに十分な時間を費やすことができます。 2)物事がどのようにぶら下がっているかを示す私はJavaScriptがどのように呼び出されるのかは分かりません。それは 'cmdButtonSend();'です。 – user1429080

+0

コードを少し変更して、物事がどのようにフィットするかを明確にしました – jkb114

+0

$ .ajaxコールにcontentTypeとdataTypeプロパティを追加しました。また、データを送信する場合は、そのデータを受け入れるためのパラメータをWebメソッドに含める必要があります。 –

答えて

0

私は問題を引き起こしていたことを理解しました。 私はそれがそれがJsonを送っていたことを知っていて、戻ってくることを期待していなければなりませんでした。これには、ajax呼び出しとWebメソッドのわずかな変更が必要でした。

var $jq =jQuery.noConflict(); 
    $jq.ajax({ 
     type: "POST", 
     url: "Default2.aspx/sortxml", 
     data: "{XMLDOC: 'xmlDoc'}", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     complete: function (xhr, status) { 
    error: function (xhr, status, text) { 
       console.log(xhr.status); 
       console.log(xhr.text); 
       console.log(xhr.responseText); 
      } 

     if (status === 'error' || !xhr.responseText) { 

      alert(xhr.responseText); 
      document.getElementById("response").value = xhr.responseText; 
     } 
     else { 
      var data = xhr.responseText; 
      //alert(data); 
      document.getElementById("response").value = data; 

     } 
    } 

その後予告

contentType: "application/json; charset=utf-8", 
     dataType: "json", 

の導入とは、私はちょうど、新しいXMLDOC変数を含める必要がありましたし、それが動作WebMethod属性で

data: "{XMLDOC: 'xmlDoc'}", 

データセクションを変更しなければなりませんでした

[System.Web.Services.WebMethod()] 
    public static string sortxml(string XMLDOC) 
    { 

return ("hi");} 
関連する問題