Javascript AJAX调用响应状态200 OK,但调用了错误回调

Javascript AJAX调用响应状态200 OK,但调用了错误回调,javascript,ajax,Javascript,Ajax,我打这个电话: $.ajax({ type: 'GET', cache: false, timeout: 20000, async: true, url: "http://search.carrotsearch.com/carrot2-webapp/search", dataType: 'text', data: { query:'london', results:'100', source

我打这个电话:

$.ajax({
    type: 'GET',
    cache: false,
    timeout: 20000,
    async: true,
    url: "http://search.carrotsearch.com/carrot2-webapp/search",
    dataType: 'text',
    data: { 
        query:'london',
        results:'100',
        source:'etools',
        algorithm:'lingo3g',
        view:'folders',
        skin:'fancy-compact',
        type:'DOCUMENTS'
    },
    success: function(msg) {
        debugger;
    },
    error: function(err,textStatus, errorThrown){
        debugger;
    }
});
`

Fiddler显示response OK 200并返回正确的gzip内容。但在浏览器调试器中,错误回调被称为:

有个问题<代码>http://search.carrotsearch.com/不允许AJAX请求

在控制台中查找以下错误

请求的服务器上不存在“Access Control Allow Origin”标头 资源。因此,不允许使用源“” 进入

可能是我的
localhost
未列在
http://search.carrotsearch.com/
服务器。但是,我想你的情况也是这样。

有问题<代码>http://search.carrotsearch.com/不允许AJAX请求

在控制台中查找以下错误

请求的服务器上不存在“Access Control Allow Origin”标头 资源。因此,不允许使用源“” 进入


可能是我的
localhost
未列在
http://search.carrotsearch.com/
服务器。但是,我想在您的情况下,这也是问题所在。

浏览器调试工具的整个响应是什么?浏览器的调试控制台上是否也有任何错误消息?请尝试将查询变量名称更改为其他名称,并尝试一下
20000
超时原因?o、 Otimeout与此无关,有/没有它都存在问题。David,浏览器控制台确实给出提示:加载失败:请求的资源上不存在“Access Control Allow Origin”头。因此不允许访问源“”。浏览器调试工具中的整个响应是什么?浏览器的调试控制台上是否也有任何错误消息?请尝试将查询变量名称更改为其他名称,并尝试一下
20000
超时原因?o、 Otimeout与此无关,有/没有它都存在问题。David,浏览器控制台确实给出提示:加载失败:请求的资源上不存在“Access Control Allow Origin”头。因此,不允许对源“”进行访问。看起来此错误很有名。我需要如何更改上面的代码才能使其正常工作?很明显,数据是从search.carrotsearch.com返回的,正如我在fiddler中看到的响应一样。您不能在前端执行任何操作。但是您可以在nodejs/php或任何其他框架中创建一个启用了CORS的
backend作为此调用的包装器。然后从
AJAX
,调用启用了
CORS
的后端。看看这个,看起来这个错误很有名。我需要如何更改上面的代码才能使其正常工作?很明显,数据是从search.carrotsearch.com返回的,正如我在fiddler中看到的响应一样。您不能在前端执行任何操作。但是您可以在nodejs/php或任何其他框架中创建一个启用了CORS的
backend作为此调用的包装器。然后从
AJAX
,调用启用了
CORS
的后端