2011-07-28 159 views
0

我正在使用页面方法检索登录信息。我的代码如下,jquery ajax pagemethod无法正常工作

$.ajax({ 
    type: "POST", 
    url: Main.url + loginBox.url , 
    data: '{"jsonrpc": "2.0", "method": "login", "params": {"login": "'+nameVal+'", "pass": "'+passVal+'"'+ (loginBox.userSaveUdid ? ","id": 1}', 
    async: true, 
    dataType: "json", 
    contentType: "application/json", 
    beforeSend: function(){ 
    alert("-------------------------------------------------------------------------------------loginBox.submit : beforeSend"); 
    $("#login-error").html(); 
    Loading.show(); 
    }, 
    success: function(data) { 

    alert("-------------------------------------------------------------------------------------loginBox.submit : success = "); 

    if(data.error){ 

     $("#login-error").html(data.error.message) 

    }else{ 

     loginBox.LogInSuccess(nameVal,data.result.user_id,data.result.token) 

     /* 
     loginBox.userName = nameVal; 
     loginBox.userLogged = data.result.user_id; 
     loginBox.userToken = data.result.token; 
     Limit.getLimit(); 
     loginBox.hide(); 
     */ 
    } 


    }, 
    complete: function(){ 
    alert("-------------------------------------------------------------------------------------loginBox.submit : complete"); 
    Loading.hide(); 
    }, 
    error: function(XMLHttpRequest, textStatus, errorThrown){ 
    $("#login-error").html(textStatus) 
    alert("-------------------------------------------------------------------------------------loginBox.submit : error " +textStatus); 
    } 
}); 

我得到404未找到页面错误。我用萤火虫来检查这些和请求和响应。

这就是我得到的。

响应Headersview

通过1.1 BILEETAISA

连接保持

代理连接保持

内容长度728

日期星期三, 27 Jul 2011 22:17:53 GMT

Content-Type text/html;字符集= UTF-8

服务器的Apache/2.2.3(CentOS的)

X供电-通过的Phusion客运(mod_rails/mod_rack)3.0.7

X-运行时0.004490

状态404

请求Headersview

主机xxxx.tv

用户代理Mozilla/5.0(Windows NT 5.1; RV:5.0.1)壁虎/ 20100101火狐/ 5.0.1

接受的text/html,应用/ XHTML + xml的,应用/ XML; Q = 0.9,/; Q = 0.8

接受 - 语言EN-US,EN; q = 0.5

接受编码gzip的,放气

接收字符集ISO-8859-1,UTF-8,q = 0.7,*; q = 0.7

代理连接保持活动

地空

访问控制请求,我... POST

访问控制请求,他......内容类型

语用无缓存

的cache Control no-cache

有人可以告诉我哪里是故障。它应该是接受应用程序/ json请求头中的字段吗?我是否应该将json库添加到我的项目中?仅仅使用jQuery是不够的。如果这是愚蠢的问题,请原谅我。我更喜欢这些东西。

回答

0

使用此语法:

var pageUrl = '<%=ResolveUrl("~/Home.aspx")%>' 
       $.ajax({ 
        type: "POST", 
        url: pageUrl + '/UpdateWlcomMessage', 
        data: '{WelcomeText: "' + welocmetext + '"}', 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        success: function (data) { 
        } 
       }); 
+0

感谢您的答复。我尝试了它作为pageUrl ='<%= ResolveUrl(“〜/ xxx.tv”)%>但我得到异常...“访问受限制的URI被拒绝”代码:“1012”nsresult:“0x805303f4(NS_ERROR_DOM_BAD_URI)”location :“file:.../javascript/jquery.js Line:7869”]。顺便说一句,我没有使用asp.net或类似的东西。只有javascript和html。你有什么想法。 – chAmi

0

检查网址是否正确

网址:Main.url + loginBox.url

首页复印过去你正确的页面URL和方法名。然后请检查。

对于样品是

var pageUrl = 'Contact.aspx'; 
     $.ajax({ 
      url: pageUrl + '/SendMail', 
      type: "POST", 
      data: '{Name: "' + Name + '",FromEmail: "' + FromEmail + '",Body: "' + Body + '"}', 
      dataType: "json", 
      contentType: "application/json", 
      success: function (data) { 
       if (data.d == 1) { 
        $("input[type=button]").val("Send Mail"); 
        alert("Mail successfully sent"); 
        $('#envelope').css('display', 'none'); 
        $('#fade').css('display', 'none'); 

       } 
      } 
     });