2013-02-25 19 views
0

我有另一個問題:( 我有WS,wchich是VS 2010 MVC應用程序的一部分,我可以調用它,它工作正常 我的問題是,從變量牛逼通PARAMS(功能參數)JQuery Ajax調用 - 來自變量的參數

function test2(usr, art) { 
    alert('start : ' + usr); 

    var params = {user : usr, idArt : art} 

    $.ajax({ 
     type: "POST", 
     url: "/../WebServicePrzeczytany.asmx/Przeczytany", 
     data: params, 
     dataType: "json", 
     success: function suc(msg) { 
      alert("odebrane: "); 
     }, 
     faild: fail 
    }); 

    alert('stop : ' + art); 
}; 

我從按鈕(測試)調用它的任何sugestions

問題就迎刃而解了。?

再次非常感謝安東尼·格里斯特(見評論),爲螢火蟲。它是一個強大的工具。

所以,Firebug告訴我,我得到錯誤形式WS。它是:「請求格式無法識別的URL意外地以」/ Przeczytany「結尾」「。

的解決方案是

<webServices> 
<protocols> 
<add name="HttpGet"/> 
<add name="HttpPost"/> 
</protocols> 
</webServices> 

添加到WS。就這樣。 jupi !! :)

+2

用分號結束你的var行; – EnterJQ 2013-02-25 09:28:05

+0

@EnterJQ這不是JavaScript的要求。 – 2013-02-25 09:29:41

+0

*發生了什麼?使用瀏覽器的開發人員工具(Firefox中的Firebug)查看請求是否已發送,並檢查是否有任何JavaScript錯誤。 – 2013-02-25 09:30:23

回答

0

如果啓用JSON爲Web服務(通過裝飾與[ScriptService]屬性的方法),你就可以調用它像這樣:

function test2(usr, art) { 
    alert('start : ' + usr); 

    var params = {user : usr, idArt : art} 

    $.ajax({ 
     // TODO: never hardcode an url like that => use an url helper to generate that! 
     url: '/../WebServicePrzeczytany.asmx/Przeczytany', 
     type: 'POST', 
     data: JSON.stringify(params), 
     contentType: 'application/json', 
     success: function suc(msg) { 
      alert('odebrane: '); 
     }, 
     error: fail 
    }); 

    alert('stop : ' + art); 
}; 

事情需要注意:

  • 使用JSON.stringify原生方法將JavaScript對象轉換爲JSON字符串,然後將其傳遞給Web服務
  • 設置contentType: 'application/json'因爲這就是我們傳遞給第E服務

留給你做:

  • 從一個網址助手(如@Url.Content("~/WebServicePrzeczytany.asmx/Przeczytany"))生成的網址替換硬編碼的url屬性設置爲您服務。