LJ *_*ski 6 javascript ajax angularjs
我刚刚注意到,当我制作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;
};
Run Code Online (Sandbox Code Playgroud)
Que*_*tin 11
Angular默认为POST JSON格式的数据而不是表单编码数据(jQuery不是这样,因为我使用jQuery做出相同请求的语句是不正确的).
跨域,JSON格式的POST请求需要预检OPTIONS请求.
据推测(因为除了他们要去的URL的末尾之外你没有显示请求的任何细节),这些请求中的第一个是预检OPTIONS请求.