如何使用RESTAdapter查看ember中的所有响应头

时间:2016-05-29 00:44:39

标签: ember.js ember-data ember-cli ember-simple-auth

我的回复标题如下所示

HTTP/1.1 200 OK
Server: nginx/1.9.7
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
X-On-Trial: 1
Cache-Control: no-cache
Access-Control-Allow-Origin: http://localhost:4200
Vary: Origin
Date: Sun, 29 May 2016 00:37:31 GMT

但是当我在RESTAdapter handleResponse函数中执行console.log(headers)时,所有内容都是

EmptyObject {Content-Type: "application/json", Cache-Control: "no-cache"}

如何访问X-On-Trail标头或我可能需要的任何其他自定义标头?

我不确定这是否重要,但我使用的是ember-simple-auth。这会剥掉标题吗?

1 个答案:

答案 0 :(得分:1)

我检查消息来源。 .handleResponse is called from .ajax

  ajax(url, type, options) {
    var adapter = this;

    var requestData = {
      url:    url,
      method: type
    };

    return new Ember.RSVP.Promise(function(resolve, reject) {
      var hash = adapter.ajaxOptions(url, type, options);

      hash.success = function(payload, textStatus, jqXHR) {

        let response = adapter.handleResponse(
          jqXHR.status,
          parseResponseHeaders(jqXHR.getAllResponseHeaders()), // try to check both in debugger
          payload,
          requestData
        );

因此,只需尝试停在parseResponseHeaders(jqXHR.getAllResponseHeaders())行并检查jqXHR.getAllResponseHeaders()即可。如果没问题 - 请检查parseResponseHeaders()

如果您有项目的公共链接,或者您可以使用REstAdapter为任何公共项目提供链接,我将很乐意帮助您进行调试

关于条带化 - 它会跳过不包含冒号的标题

P.S>感谢@Vlad xmlHttp.getResponseHeader + Not working for CORS

"Access-Control-Expose-Headers"

  

用于响应预检请求以指示哪些HTTP标头可以>在提出实际请求时使用。

Access-Control-Allow-Headers: <field-name>[, <field-name>]*