1

我能够使用 jquery 插件修复我的 webservice ajax 问题。称为 jquery.jsonp.js。现在在我的成功功能上,我得到了一个 Uncaught

 SyntaxError: Unexpected token < 

chrome 控制台窗口上的错误。我尝试了各种方法来解决这个问题,但我不知所措

$.jsonp({
    type: "POST",
    url: "http://localhost:49524/mobile/Android/AndroidWebServices.asmx/CheckLogin",
    data: "email="+u+"&password="+p,
    crossDomain:true,
    success: function (data) {
        var s = $(data).find('string').text();;
        alert(s);
    }
});

如果有更好的方法从 xml 中获取价值,我将不胜感激任何帮助

<string xmlns="http://wmstec.com/">true</string>

是从 Web 服务返回的 XML 文件

 [WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string CheckLogin(string email, string password)
{

    string vid = "xxxx";

    //Get the User Information
    DB.User cur_user = DB.User.ByEmail(email.Trim());
    //if it failed, try by screen name
    if (-1 == cur_user.ID) { cur_user = DB.User.ByScreenName(email.ToLower()); }


    //Does their password match?

   if (cur_user.CheckPassword(password, vid))
    {
    // companys ToJSON function 
       return Utility.ToJSON("true");
    }
    else
    {
        return Utility.ToJSON(return "false");
    }
}

更新

$.ajax({
    type : "GET",
    url: "http://localhost:49524/mobile/Android/AndroidWebServices.asmx/CheckLogin",
    crossDomain:true,
    data: "email="+u+"&password="+p,//({ email: u, password: p}),
    dataType :"jsonp",
    contentType: "application/json; charset=utf-8",
    success : function(data){
        alert(data);}

});

返回相同的东西..所以它不一定是 jsonp 插件是一个问题.. 它显然是一个用户问题大声笑..

4

1 回答 1

2

jquery.jsonp.js是一个用于通过 HTTP 访问以 JSON-P 表示的数据的库。

<string xmlns="http://wmstec.com/">true</string>是表示为 XML 的数据,而不是 JSON-P(JSON-P 由一个application/javascript程序组成,该程序由单个函数调用(对您定义的函数)组成,服务的数据作为该调用的参数)。

如果您想使用这种方法,您将需要更改 Web 服务以输出 JSON-P。

于 2013-02-26T16:07:31.773 回答