1

我想交一個字符串,web服務,但我得到這個錯誤(谷歌Chrome瀏覽器擴展項目):Jquery AJAX Post:500(內部服務器錯誤)?

jQuery的2.1.1.min.js:4 POST http://localhost:49242/Service.asmx/test 500(內部服務器錯誤)

這裏是我的Ajax代碼:

var data = {}; 
data.param1 = words[0]; 

$.ajax({ 
    data: JSON.stringify({ 'data': data.param1 }), 
    dataType: 'application/json', 
    url: 'http://localhost:49242/Service.asmx/test', 
    type: 'POST', 
    contentType: 'application/json; charset=utf-8', 
    success: function (result) { 
     alert(result); 
    }, 
    failure: function (errMsg) { 
     alert(errMsg); 
    } 
}); 

我的服務:

[WebMethod] 

[System.Web.Script.Services.ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)] 
public string test(string param1) { 
    return param1; 
} 

我在這個問題上工作了大約3天。你可以幫我嗎 ?

順便說一句,我有一個問題。我張貼JSON變量服務與Ajax(如你所見),但服務返回XML值。這個代碼塊是否有問題或[System.Web.Script.Services.ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)]解決問題?

+0

在dataType中寫入'json' – uzaif

+0

謝謝,但它沒有奏效。 – user5535577

+0

你有沒有檢查你的網址正在處理哪些數據? – uzaif

回答

2

您的錯誤來自您的數據參數。字符串化data對象,而不是{ 'data': data.param1 }

var data = {}; 
data.param1 = words[0]; 

$.ajax({ 
    data: JSON.stringify(data), 
    dataType: 'application/json', 
    url: 'http://localhost:49242/Service.asmx/test', 
    type: 'POST', 
    contentType: 'application/json; charset=utf-8', 
    success: function (result) { 
     alert(result); 
    }, 
    failure: function (errMsg) { 
     alert(errMsg); 
    } 
}); 

你stringifyed數據將導致{"param1":"Words"},那麼你的服務應該能夠在param1參數綁定。

+0

非常感謝你的工作。但我張貼服務「blah」字符串,但服務返回[對象對象]。爲什麼? – user5535577

+0

歡迎您。你用的瀏覽器是否很大? –

+0

鉻和我照顧問題。這工作:var data = response.hasOwnProperty(「d」)? response.d:response; alert(data); – user5535577

0

我在AJAX post響應中遇到了這種類型的錯誤。我在這個問題上花費了太多時間,最後我發現了它。

它引發了500個內部錯誤,因爲AJAX響應中有很多來自服務器的內容,所以它會返回執行超時。

所以我只是在下面加了一行,它工作正常。

Page.Server.ScriptTimeout = 300; 
+0

你在哪裏添加該行? [@Belle](https://stackoverflow.com/users/8019185/belle)有一個問題([試圖編輯你的文章作爲回覆](https://stackoverflow.com/review/suggested-edits/17723040) ) –

+0

我使用頁面「emailapi.aspx」的URL調用ajax函數。在這種情況下,我得到的錯誤,但是當我已經將** Page.Server.ScriptTimeout = 300; **添加到emailapi.aspx。它工作正常。 – Jitendra

相關問題