Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.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
Javascript ExtJS 4-在REST代理和/或存储中访问自定义响应头?_Javascript_Web Services_Http_Rest_Extjs - Fatal编程技术网

Javascript ExtJS 4-在REST代理和/或存储中访问自定义响应头?

Javascript ExtJS 4-在REST代理和/或存储中访问自定义响应头?,javascript,web-services,http,rest,extjs,Javascript,Web Services,Http,Rest,Extjs,我通过以下问题了解了如何将自定义头添加到Ext JS请求: 现在我尝试处理异常处理问题,当问题是用户错误时。这个问题在这里讨论: 其中一个答案建议映射到最近的HTTP错误代码,但也可以使用自定义响应头将异常信息传递回客户端 我强烈建议不要扩展基本的HTTP状态码。如果找不到与您的情况完全匹配的错误,请选择最接近的错误,并将错误详细信息放入响应正文中。另外,记住HTTP头是可扩展的;您的应用程序可以定义您喜欢的所有自定义标题。例如,我开发的一个应用程序可能返回在多种情况下找不到的404。因此,

我通过以下问题了解了如何将自定义头添加到Ext JS请求:

现在我尝试处理异常处理问题,当问题是用户错误时。这个问题在这里讨论:

其中一个答案建议映射到最近的HTTP错误代码,但也可以使用自定义响应头将异常信息传递回客户端

我强烈建议不要扩展基本的HTTP状态码。如果找不到与您的情况完全匹配的错误,请选择最接近的错误,并将错误详细信息放入响应正文中。另外,记住HTTP头是可扩展的;您的应用程序可以定义您喜欢的所有自定义标题。例如,我开发的一个应用程序可能返回在多种情况下找不到的404。因此,我们没有让客户端解析响应体,而是添加了一个新的头X-Status-Extended,其中包含我们专有的状态代码扩展。因此,您可能会看到如下响应:

未找到HTTP/1.1 404
X-Status-Extended:404.3此处有更具体的错误


我非常喜欢这个主意。但无法确定如何从ExtJS中访问此自定义响应标头以提取异常消息。

响应对象有一个getAllResponseHeader()方法,您可以使用该方法访问所有标头键值对

在Extjs中,您可以执行以下操作:

Ext.Ajax.request({
    url: 'www.microsoft.com',
    method: 'GET',
    failure: function(response){
        console.log(response.getAllResponseHeaders());
     }
});​
这将返回包含以下信息的实例:

connection: "keep-alive" content-encoding: "gzip" content-type: "text/html; charset=utf-8" date: "Thu, 13 Dec 2012 03:10:15 GMT" server: "nginx/0.8.54" transfer-encoding: "chunked" vary: "Cookie"
Response对象有一个getAllResponseHeader()方法,您可以使用该方法访问所有标头键值对

在Extjs中,您可以执行以下操作:

Ext.Ajax.request({
    url: 'www.microsoft.com',
    method: 'GET',
    failure: function(response){
        console.log(response.getAllResponseHeaders());
     }
});​
这将返回包含以下信息的实例:

connection: "keep-alive" content-encoding: "gzip" content-type: "text/html; charset=utf-8" date: "Thu, 13 Dec 2012 03:10:15 GMT" server: "nginx/0.8.54" transfer-encoding: "chunked" vary: "Cookie"
我在这个答案中找到了有用的信息:我在这个答案中找到了有用的信息:是否可以从存储访问响应头。load()回调,其签名是:
callback:function(record,operation,success)
?是否可以从存储访问响应头。load()回调,其签名为:
回调:函数(记录、操作、成功)