为什么$ .get()无法正常工作

时间:2014-12-30 17:24:43

标签: javascript php jquery

我试图从php文件中检索一行代码。我的代码如下:

$( document ).ready(function() {
    alert("1");
    $.get('http://myurl.com/toolbox/myPHP.php?store_id=4649b4a8a802c3&couponShow=checkout', function(data) {
        alert(data);
        alert("2");
    });
});   

window.onload = function() {
    if (window.jQuery) {
        // jQuery is loaded
        alert("Yeah!");
    } else {
        // jQuery is not loaded
        alert("Doesn't Work");
    }
}

"1""Yeah!"被正确警告,因此jQuery正在加载,但我无法进入get函数。访问内部网址会准确回复所期望的内容。我在这里做的事情有什么问题吗?我可以采取哪些步骤来找到问题?

3 个答案:

答案 0 :(得分:0)

尝试在请求结束时使用.fail()来确定它是否与php文件有关。

使用data回调来接收失败请求的详细信息

这样可行:

$.get("http://api.postcodes.io/postcodes?q=da117ne", function (data) {
  alert("it worked: " + data.status);
}).fail(function (data) {
  alert(data.statusText);
});

这不会,但会给出错误回复

$.get("dedededhttp://api.postcodes.io/postcodes?q=da117ne", function (data) {
  alert("it worked: " + data.status);
}).fail(function (data) {
  alert(data.statusText);
});

以下是jsfiddle的示例: http://jsfiddle.net/rx6ws7hw/

答案 1 :(得分:0)

$( document ).ready(function() {
    alert("1");
    $.get('http://myurl.com/toolbox/myPHP.php?store_id=4649b4a8a802c3&couponShow=checkout')
     .done( function() {
        alert("2");
    }).fail(function(){
        alert("3") ;
    });
});

See Jquery $.Get

答案 2 :(得分:0)

我尝试在当前页面上复制/粘贴稍微修改过的版本(它有效):

$( document ).ready(function() {
    $.get('http://stackoverflow.com', function(data) {
        window.console.log(data);
    });
});

如果您想尝试一下,也可以这样做。

在此页面上,在Chrome中,按Command + Option + I(菜单 - >更多工具 - >开发人员工具)。单击出现的新“开发人员窗格”顶部的控制台选项卡。将上面的代码粘贴到控制台中,然后按Enter键。

但是,如果我稍微改变一下,

$( document ).ready(function() {
    $.get('http://google.com', function(data) {
        window.console.log(data);
    });
});

我得到了这个(没有添加.fail进行调试):

XMLHttpRequest cannot load http://google.com/?_=1419962724028. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://stackoverflow.com' is therefore not allowed access.

我不太熟悉通过跨域获取内容,但是在您自己的服务器上使用这个小测试可以引导您朝着正确的方向发展。

我认为我们需要更多信息来更全面地诊断问题。

如果您已经知道所有这些,我道歉:)我知道这很简单,但这是我开始的第一个地方。