由于您可以理解我的标题,因此浏览器不会调用GetReleatedProducts
方法。我把断点$(document).ready(function ()
行放了,但它没有进入ajax调用。
我检查过我有jquery参考。你有什么想法吗?
$(document).ready(function () {
$.ajax({
type: "POST",
url: "http://localhost:2782/AjaxCallPage.aspx/GetReleatedProducts",
data: "{productId:" + productId + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {...}
答案 0 :(得分:2)
你告诉服务器你发送的是JSON:
contentType: "application/json; charset=utf-8",
...但你发送的是什么:
data: "{productId:" + productId + "}",
...不是有效 JSON。要成为有效的JSON,键productId
必须是双引号:
data: '{"productId":' + productId + '}',
// ^ ^
(这里我假设productId
是一个数字。如果它是一个字符串,它也需要用双引号。)
所以我怀疑服务器端拒绝了呼叫,因为JSON无效。
将JSON 发送到服务器也有点不寻常,尽管如果该服务器被编码为期望它并且正确发送它,它是完全有效的。使用默认的application/x-www-form-urlencoded
将数据发送到服务器更为典型。
因此,除非您已将服务器端编码为期望接收JSON,否则请从contentType
来电中移除$.ajax
选项并将data
更改为:
data: {productId: productId}
...告诉jQuery为你做编码。