我正在尝试在http angularJS中使用put方法我收到错误
错误:XMLHttpRequest无法加载[url]。预检的响应具有无效的HTTP状态代码404
我的代码是:
var newRentalUrl = serverURL;
var dataObj = JSON.stringify(JSONDATA);
$http.put(newRentalUrl, dataObj, {
headers: {
'Content-Type': 'application/json; charset=UTF-8'
},
}).success(function(responseData) {
try {
$ionicLoading.hide();
console.log(responseData);
//$state.go('payment');
} catch (err) {
console.log(err);
$ionicLoading.hide();
}
$ionicLoading.hide();
}).error(function(data, status, headers, config) {
$ionicLoading.hide();
console.log(data);
});
在服务器端,该方法作为选项
接收2015-10-21T05:37:02.947517 + 00:00 heroku [router]:at = info method = OPTIONS path =" / v1 / home / xx"主机= xxxxxx.herokuapp.com request_id = xxxxx-498d-4026-a39a-xxxxxxx fwd =" xxx.xxxx.xxx.xxx" dyno = web.1 connect = 0ms service = 2ms status = 404 bytes = 481
答案 0 :(得分:1)
将内容类型更改为'内容类型':' application / x-www-form-urlencoded;字符集= UTF-8'
如果是跨源资源请求,则需要在服务器中添加设置CORS头(Access-Control-Allow-Origin)。
希望它可行。 var newRentalUrl = serverURL;
var dataObj = JSON.stringify(JSONDATA);
$http.put(newRentalUrl, dataObj, {
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
},
}).success(function(responseData) {
try {
$ionicLoading.hide();
console.log(responseData);
//$state.go('payment');
} catch (err) {
console.log(err);
$ionicLoading.hide();
}
$ionicLoading.hide();
}).error(function(data, status, headers, config) {
$ionicLoading.hide();
console.log(data);
});