2013-02-26 124 views
1

我能用jquery插件修復我的webservice ajax問題。稱爲jquery.jsonp.js。現在我成功的功能我得到的鉻控制檯窗口在未捕獲

SyntaxError: Unexpected token < 

錯誤。我嘗試了各種方法來解決這個問題,但我很茫然

$.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> 

是XML即從WebService

[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"); 
    } 
} 

UPDATE

$.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插件,是一個問題..它顯然是一個用戶的問題笑..

+0

所以,你要求JSONP,但返回XML?這聽起來像你的問題。 – 2013-02-26 16:05:52

+1

最有可能您的web服務正在返回XML而不是JSONP。如果你想使用JSONP,你的web服務必須返回JSONP。 JSONP是JSON封裝在回調()中,以便它可以作爲外部腳本執行。 JSON是一種類似於XML的數據格式,但它的語法非常不同,並且非常模仿javascript對象文本的語法。 – 2013-02-26 16:06:05

+1

@KevinB:JSONP不*具有*作爲JavaScript對象(實際上不是JSON)。它通常是,但只要它包含在函數調用中,它可以是任何東西。 – 2013-02-26 16:06:47

回答

2

jquery.jsonp.js是用於訪問JSON-P通過HTTP表示的數據的庫。 (JSON-P包含一個application/javascript程序,其中包含一個函數調用(對於您定義的函數),並將該服務的數據作爲該調用的參數)。數據表示爲XML,不是JSON-P。

如果您想使用此方法,您將需要更改Web服務,以便輸出JSON-P。

+0

那我該如何將輸出改爲JSONp呢?我將使用webservices編輯我的問題 – DWolf 2013-02-26 16:08:31

+0

@DWolf:我不知道您使用的JSONP插件是如何工作的,但通常會將一個'calllback'參數添加到GET字符串中。您需要回顯包含在該函數調用中的數據。例如:'http://yourservice.com/jsonp?callback = test123',然後你會回顯'test123({your:'data'});'。 – 2013-02-26 16:10:40

相關問題