之前用jquery的ajax请求访问REST,用"GET/POST"发送http请求,服务端收到的总是“Option”方法。网上了解到其实是跨域导致的,结果是http header 和params都无法获取到。
然后,就查了下jquery的跨域调用,发现只要用jsonp的方式就可以,代码如下:
var postdata = {'Authorization':'AWS cuimeng1:1232432453'}
var dDate = "Wed, 01 Mar 2009 12:00:00 GMT";
$.ajax({
url:HOST_URL,
type:'GET',
dataType:'jsonp',
jsonp: 'callback',
data: postdata,
header:{
"Authorization":"AWS cuimeng1:1232432453"
},
beforeSend: function(xhr) {
xhr.setRequestHeader("Date",dDate);
xhr.setRequestHeader("Authorization","AWS cuimeng1:1232432453");
},
success:function(result){
alert('ok');
},
error:function(xhr,textStatus,errowThrown){
alert(xhr.status);
alert(textStatus);
}
});
var dDate = "Wed, 01 Mar 2009 12:00:00 GMT";
$.ajax({
url:HOST_URL,
type:'GET',
dataType:'jsonp',
jsonp: 'callback',
data: postdata,
header:{
"Authorization":"AWS cuimeng1:1232432453"
},
beforeSend: function(xhr) {
xhr.setRequestHeader("Date",dDate);
xhr.setRequestHeader("Authorization","AWS cuimeng1:1232432453");
},
success:function(result){
alert('ok');
},
error:function(xhr,textStatus,errowThrown){
alert(xhr.status);
alert(textStatus);
}
});