2017-02-09 88 views
0

我试着做一个ajax调用来发布到webmethod,每当我发布它,它只是返回整个aspx页面。 这里是Ajax调用:Ajax Post返回完整的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页面。

这是为什么?编辑:Ajax调用是作为cmdButtonSend()的一部分调用的JavaScript方法的一部分;方法。

+0

嗨,一些建议我如果您希望人们提供帮助,请执行以下操作:1)修复代码块 - 如果您希望其他人花时间帮助您,可以在问题上花费足够的时间来解决问题,例如缩进。 2)显示事情如何挂在一起。我看不到JavaScript如何获得通话。它是'cmdButtonSend();'。 – user1429080

+0

对代码进行了一些更改,并且更清楚地说明了事物如何组合在一起 – jkb114

+0

将contentType和dataType属性添加到$ .ajax调用中。另外,如果您要发送数据,则应该使用webmethod中的参数来接受该数据。 –

回答

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", 

,然后不得不改变数据部分

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

在将WebMethod我只好就在这时,包括新的xmlDoc中的变量和它的工作原理

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

return ("hi");}