Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在jquery中获取406错误(不可接受)_Jquery_Json_Ajax_Getjson_Mustache - Fatal编程技术网

如何在jquery中获取406错误(不可接受)

如何在jquery中获取406错误(不可接受),jquery,json,ajax,getjson,mustache,Jquery,Json,Ajax,Getjson,Mustache,我在my.js中进行错误处理,在这里我对其他服务器进行跨域调用,对于动态HTML模板,我也使用Mustache.js $.getJSON(url, function(data, textStatus, xhr) { $.each(data, function(i, data) { introPage(data); }); }).fail(function(Error) { alert(Error.status); }); function introPage(

我在my.js中进行错误处理,在这里我对其他服务器进行跨域调用,对于动态HTML模板,我也使用Mustache.js

$.getJSON(url, function(data, textStatus, xhr) {
  $.each(data, function(i, data) {
    introPage(data);
  });
}).fail(function(Error) {
        alert(Error.status);
}); 

function introPage(data )
{
    $.getJSON('myphp.php?jsoncallback=?&template='+testTemplate, function(msg) {
        // my operations

    }).error(function(data) {
            }); 
}
我们在getJSON中有.fail()来捕获中的错误。我能够捕获404错误(未找到),但当涉及到406错误(不可接受或说无效输入)或401错误(未经授权的访问)时,.fail()似乎不起作用

但在控制台中抛出错误

当我点击链接时也是如此。它以下面的格式显示jquery回调中的错误

jQuery191014790988666936755_1378113963780({
  "error": {
    "code": 406,
    "message": "Not Acceptable: Sorry, There are no results to display for the given input."
  }
});
现在我想知道如何在我的JS中得到这个错误。我没有收到错误代码406和401。我需要该错误代码以便显示相应的错误页面


谢谢

根据
jsoncallback=?
参数和响应
jQuery191…780({…})
判断,jQuery似乎正在生成一个JSONP请求。JSONP请求不受同源策略限制,但它们有以下限制:

注意:对于跨域脚本和 跨域JSONP请求

解决方案:

  • 如果服务器允许跨域请求,则创建纯JSON请求
  • 查看以下问题的答案:
  • Use——它不会给出HTTP错误代码

  • 你被一个狡猾的罪犯击中了。还有@RoryMcCrossan:我不明白???即使涉及到两台服务器,但它们都在同一个域下!!!比为什么相同来源策略。子域不同。对于AJAX请求,域可能完全相同—具体到协议。@Rory:Script和JSONP请求不受相同的源策略限制。@RoryMcCrossan:我所理解的是,当我使用getJSON调用我的php“url”时,它会返回错误,但不会在.fail()中显示错误因为由于某种原因,jquery日志或其他什么地方出现了错误。。。。所以,如果我删除jsoncallback=?…,我该如何捕捉这个错误呢。。。。。。。我收到错误
    XMLHttpRequest无法加载。访问控制不允许原点允许原点…我担心这是因为同源策略,在这种情况下,您必须使用JSONP,在这种情况下,您无法检查HTTP状态。因此,没有办法解决此问题。。。我是说我们应该能做点什么。。。。问题总是有解决办法的@Salman AIf如果您控制另一个脚本(发送JSON数据或抛出404错误的脚本),您可以简单地添加到该脚本:
    Access control Allow Origin:
    。另一种解决方案是在服务器上托管跨域代理脚本。