当前位置:  开发笔记 > 编程语言 > 正文

为什么Angular AJAX请求在chrome网络选项卡中可见两次

如何解决《为什么AngularAJAX请求在chrome网络选项卡中可见两次》经验,为你挑选了1个好方法。

我刚刚注意到,当我制作Angular(1.4.8)AJAX POST请求时,它在chrome网络选项卡中可见两次(第一个(355B)angular.js:10765和第二个(812B),other其中第一个看起来像请求,第二个作为响应 - 只有第二个包含响应数据).我使用jQuery做出了相同的请求,它出现在一个单一的请求中(812B).

码:

return function ( id ) {
  var deferred = $q.defer()
    , data = {
      id: id || null,
      range: tbDateRange.get( true )
    }
    ;

  /* TODO - REMOVE */
  $.ajax({
    method: 'POST',
    url: path,
    dataType: 'JSON',
    data: data
  });

  $http.post( path, data )
    .success( function ( data ) {
      /*...*/
      deferred.resolve( data );
    } )
    .error( function ( error ) {
      /*...*/
    } );
  return deferred.promise;
};

和网络标签截图: 在此输入图像描述



1> Quentin..:

Angular默认为POST JSON格式的数据而不是表单编码数据(jQuery不是这样,因为我使用jQuery做出相同请求的语句是不正确的).

跨域,JSON格式的POST请求需要预检OPTIONS请求.

据推测(因为除了他们要去的URL的末尾之外你没有显示请求的任何细节),这些请求中的第一个是预检OPTIONS请求.

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有