2011-11-15 59 views
0

我有一個工作ASP.Net測試Web服務,但我不斷收到500錯誤爲:JavaScript的肥皂錯誤調用asp.net web服務

"System.InvalidOperationException: Request format is invalid: text/xml. 
    at System.Web.Services.Protocols.HttpServerProtocol.ReadParameters() 
    at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest() 
" 

,當我用JavaScript調用它。

這是一個簡單的Web服務,它將單個參數作爲字符串並將其返回給客戶端。請幫忙!

link to code here

+1

代碼?如果我們不知道您嘗試過什麼,很難提供幫助。 – drdwilcox

+0

嘗試放入Web服務的完整路徑而不是相對的,除了確保JS在同一臺服務器上。請注意同源策略http://en.wikipedia.org/wiki/Same_origin_policy,它會將您的JS調用限制在同一級別或更高級別的目錄中。你能直接在瀏覽器中調用嗎? – bcmoney

回答

1

對於那些你們誰這可能幫助,這個問題被正確設置的SOAPAction,在格蘭頭:

$阿賈克斯({ 類型:「後」, 網址:目標, 的contentType: 「文本/ xml」 的, 數據:的SOAPBody, 數據類型: 「XML」, 過程數據:假, beforeSend:功能(XHR){ xhr.setRequestHeader( 「SOAPAction」, 「http://blahblah.com/Services/MethodName」 ); }, ....

0

確保您mess變量不包含像'?a=1&b=2' GET風格查詢字符串。您需要以POST格式發送它,例如使用JSON。嘗試改變contentTypecontentType: "application/json; charset=utf-8"

$.ajax({ 
       url: service, 
       type: "POST", 
       dataType: "xml", 
       data: '{key: value}', 
       complete: endTest, 
       error: processError, 
       contentType: "application/json; charset=utf-8", 
     });