$(document).ready无效,但页面已加载

时间:2013-05-21 11:12:42

标签: ajax jquery

由于您可以理解我的标题,因此浏览器不会调用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) {...}

1 个答案:

答案 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为你做编码。