$ .post不起作用(任何地方)! 为什么?
我对$ .post的调用并不适用于我的代码。 我没有将请求发送到其他域,实际上,我正在做一些localhosted。 我的localhost别名由Mac OS X 10.8自动定义为ramon.local
,我从http://ramon.local/linkebuy_0.7/resourceX
请求http://ramon.local/linkebuy_0.7/resourceY
。 Chrome控制台上没有错误。
服务器端没有收到请求,我可以通过直接从浏览器访问(键入URL)来检查它。
这不只是一个不起作用的电话,它们都不是。 他们都在几天前工作,我怀疑我不小心改变了我当地的设置。 会是什么呢?
这是我面临的一个例子:
$.post( <>, {}, function(response) { console.log('THIS SHOULD BE PRINTED ON CONSOLE'); alert('THIS SHOULD BE POPPED UP'); } );
在运行上面的代码时,我没有收到警报,也没有控制台消息。 所以我尝试了以下内容:
$.support.cors = true; $.ajax({ url: "http://ramon.local/linkebuy_0.7", dataType: "json", type: "GET", crossDomain: true, success: function (data) { console.log(data); }, error: function (xhr, status, error) { alert(error + " - " + status); } });
我刚来了$.support.cors = true;
和crossDomain: true
以检查它是否是跨域问题。 所以我被警告No Transport - error
与以前一样。
我该怎么做才能解决这个问题?
提前致谢。
试试这个,看看你是否收到任何警报:
// Assign handlers immediately after making the request, // and remember the jqxhr object for this request var jqxhr = $.post("your url", function() { alert("success"); }).success(function() { alert("second success"); }).error(function() { alert("error"); }).complete(function() { alert("complete"); }); // perform other work here ... // Set another completion function for the request above jqxhr.complete(function() { alert("second complete"); });
好吧,我以一种非常奇怪的方式解决了这个问题。
我删除了JQuery文件并再次下载,替换旧文件。 发生了它。
所以,如果你是:
- 制作非跨域的AJAX请求;
- 使用JQuery(例如
$.post
,$.get
等); -
No Transport
AJAX错误
然后重新下载并替换你的JQuery源代码 。
否则,如果您正在进行跨域请求(不是这种情况),那么请查找JSONP并尝试设置$.support.cors = true;
在你的代码开头。
感谢大家的意见和答案。