2010-07-04 164 views
0

看起來它只是不希望工作...的jQuery + web服務:web服務不返回JSON,只有XML

@ web服務:

<ScriptMethod(UseHttpGet:=False, ResponseFormat:=ResponseFormat.Json), WebMethod()> _ 
    Public Function LoginDB(ByVal user As String, ByVal pass As String) As String 
     global.user = user 
     global.pass = pass 
     If (<<lots of code to check if user is valid>>) Then 
      Return "1" 
     Else 
      Return "0" 
     End If 
    End Function 

web服務不工作,如果用戶是有效的,返回1否則爲0。但是,我一直把它作爲XML

<?xml version="1.0" encoding="utf-8"?> 
<string xmlns="http://tempuri.org/">"0"</string> 

@Jquery:

$.ajax({ 
       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       url: "Services/Autenticacao.asmx/LoginDB", 
       data: "{'user':'ale','pass':'123'}", 
       dataType: "json", 
       success: function(data) { 
        alert(data); 
       }, 
..... 

有人嗎?

回答

2

你需要發佈你的jQuery,但你使用getJson jQuery方法嗎?如果沒有,你需要明確設置正確的數據類型:

$.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: "WebService.asmx/WebMethodName", 
    data: "{}", 
    dataType: "json" 
}); 

或者使用getJSON方法:

$.getJSON('WebService.asmx/WebMethodName', function(data) { 
    //Do something with JSON response (data) 
}); 
+0

jQuery總是返回「null」 $ .ajax({type:「POST」, contentType :「application/json; charset = utf-8「, url:」Services/Autenticacao.asmx/LoginDB「, data:」{'user':'ale','pass':'test'}「, dataType:」json「, 成功:功能(數據){ 警報(數據); }, 我得到的是「空」 – ale 2010-07-04 22:56:33

+0

你有設置在Web方法中設置斷點如果有什麼是返回之前的結果 – 2010-07-04 23:10:57

+0

什麼?你的意思是?Web服務工作正常,我只是不知道爲什麼它返回XML而不是JSON,這很可能是ASP.NET問題......我只是不明白爲什麼我會得到一個XML所有jQ返回的是「空值」 – ale 2010-07-04 23:17:19