Ajax $(文档).ready不';无法工作,但页面已加载
您可以理解我的标题,浏览器不调用Ajax $(文档).ready不';无法工作,但页面已加载,ajax,jquery,Ajax,Jquery,您可以理解我的标题,浏览器不调用getrelatedProducts方法。我把断点$(document).ready(function()放在第行,但它并没有进入ajax调用。 我检查过我有jquery引用。你知道吗 $(document).ready(function () { $.ajax({ type: "POST", url: "http://localhost:2782/AjaxCallPage.aspx/GetReleatedProducts"
getrelatedProducts
方法。我把断点$(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) {...}
您已经告诉服务器您正在发送JSON:
contentType: "application/json; charset=utf-8",
…但您要发送的内容:
data: "{productId:" + productId + "}",
…不是有效的JSON。要成为有效的JSON,键productId
必须在双引号中:
data: '{"productId":' + productId + '}',
// ^ ^
(这里我假设productId
是一个数字。如果它是一个字符串,它还需要用双引号括起来。)
因此我怀疑服务器端拒绝了调用,因为JSON无效
将JSON发送到服务器也有点不寻常,尽管如果该服务器被编码为期望JSON,并且发送正确,则JSON完全有效。更典型的做法是使用默认的应用程序/x-www-form-urlencoded
将数据发送到服务器
因此,除非您将服务器端编码为希望接收JSON,否则请从$.ajax
调用中删除contentType
选项,并将数据更改为:
data: {productId: productId}
…这告诉jQuery为您进行编码。控制台上有错误吗?首先,您不以字符串的形式传递数据,而是以对象的形式传递数据。因此:数据:{productId:productId}
就可以了。也许它甚至可以解决问题…?@PetrČihula:如果您愿意,可以将其作为字符串传递。(如果你这样做,你必须自己正确编码。)@pXL不,没有错误。@cagin:这段代码所在文档的URL是什么?特别是,它是否也以http://localhost:2782
?@cagin:问题中引用的代码与上述代码不同,没有问题(事实上,它一直在跟踪——哦,我假设productId
是在包含范围内的某个地方定义的)。除了使用调试器(客户端和服务器端)外,它什么都不用做。如果您仍然没有发现问题,请创建一个演示问题的,并将所有代码和配置发布到问题中。使用ASP.Net的人可能能够指出不正确的特定位。这是我愚蠢的错误。。我没有将我的webservice方法设置为静态。。感谢您的所有建议。@cagin:啊!我很高兴您这么做把它说出来。最好的办法是把你自己的答案写出来(这样做很好),然后接受它一次,这样你就可以(两天后)接受它。我将把这个答案留在这里,因为我认为它有/有有用的信息,供以后可能找到它的人使用。。。