1

我对 $.post 的调用并没有在我的代码中运行。我没有将请求发送到其他域,实际上,我所做的一切都是本地化的。我的 localhost 别名是由 Mac OS X 10.8 自动定义的ramon.local,我从http://ramon.local/linkebuy_0.7/resourceXto请求http://ramon.local/linkebuy_0.7/resourceY。Chrome 的控制台上没有错误。

服务器端没有收到请求,我可以通过直接从浏览器访问(输​​入 URL)来检查它。

不只是一个电话不起作用,没有一个电话不起作用。他们都是工作日前,我怀疑我不小心更改了本地设置的某些内容。会是什么呢?

这是我所面临的一个例子:

$.post(
    <<CORRECT URL INSIDE THE DOMAIN>>,
    {},
    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和以前一样被警告了。

我能做些什么来解决这个问题?

提前致谢。

4

2 回答 2

1

试试这个,看看你是否收到任何警报:

// 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");
});​
于 2012-12-10T17:22:31.350 回答
1

好吧,我以一种非常奇怪的方式解决了这个问题。

我删除了 JQuery 文件并再次下载,替换了旧的。碰巧成功了。

所以,如果你是:

  • 发出非跨域的 AJAX 请求;
  • 为它使用 JQuery(例如$.post$.get等);
  • 获取No TransportAJAX 错误

然后重新下载并替换你的 JQuery source

否则,如果您正在发出跨域请求(不是这种情况),请查找 JSONP 并尝试$.support.cors = true;在代码的开头设置。

感谢大家的评论和回答。

于 2012-12-10T20:13:51.483 回答