无法使用$ http从AngularJs向Web API发送DELETE

trees_are_great

我的Web API 2解决方案中有一个oData控制器,并且试图从我的angularJs应用程序调用Delete动作。我试过了:

$http({
    method: 'DELETE',
    url: "http://localhost:52389/odata/Bears('" + $scope.itemKey + "')",
    headers: { 'Content-Type': 'application/json' }
}).then(function successCallback(response) {
    console.log('success', response);
}, function errorCallback(response) {
    console.log('error', response);
});

在提琴手看来,这似乎向API发送了一个OPTIONS请求。在提琴手中检查发送的请求,我可以看到这就是发送的内容:

OPTIONS http://localhost:52389/odata/Bears('1') HTTP/1.1
Host: localhost:52389
Connection: keep-alive
Access-Control-Request-Method: DELETE
Origin: http://localhost
X-FirePHP-Version: 0.0.6
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.71 Safari/537.36
Access-Control-Request-Headers: accept
Accept: */*
Referer: http://localhost/?id=places
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6

如果我在小提琴手中更改第一行,则:

OPTIONS http://localhost:52389/odata/Bears('1') HTTP/1.1

到:

DELETE http://localhost:52389/odata/Bears('1') HTTP/1.1

然后这个工作。如何从angularJs中获取“删除”方法?

尼伯(JB Nizet)

发送OPTIONS的原因是您要发送跨域请求。服务器需要首先同意这一点,因此需要第一个OPTIONS请求。

如果在OPTIONS之后未发送DELETE,则服务器的响应很可能为否,这意味着您需要在服务器上配置CORS。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用angularJS中的$ resource将ID发送到DELETE API

如何使用angularjs $ http.delete()请求发送数据?

AngularJS $ http ajax无法在asp.net Web API调用上使用

无法使用STOMP向activemq发送消息

无法使用GCM向Android发送推送

使用http party将json发送到Web API

使用REST API向Google Chat发送消息(Google示例在2020年无法正常工作)

无法使用来自 iOS 的 Guzzle/Http 或 Curl 向 oauth/token 发送请求

使用 localhost 向 API 发送 POST 请求

使用 Alamofire 向 API 发送 POST 请求

使用Dart向php发送HTTP请求

使用okhttp向AWS发送HTTP请求

抄送和密件抄送无法使用Web_API_v3尝试发送邮件

使用adaljs从spa向.netcore Web API发送请求始终返回401

如何使用C#中的Pushwoosh Web API向某些特定用户发送“推送通知”?

使用WebFlux时如何使用HTTP DELETE发送正文?

如何使用 PHP 通过 cURL 向 REST API 发送 HTTP GET 请求,并使用 cURL 从 REST API 调用方法

如何使用CURL向API发送数据或从API接收数据?

发送HTTP标头后服务器无法设置状态-Web API CORS

无法使用angularjs $ http请求将参数发送到服务器操作方法

我无法使用AngularJS中的$ http.post发送新数据

无法从 AJAX 调用向 Web 服务发送值

无法使用SignalR向特定用户发送消息

无法使用AWS SNS向印度(+91)发送短信

无法使用 NodeJS Admin SDK 向设备发送 FCM 通知

为什么在AngularJs中使用http.delete时无法传递参数?

角5; ASP.NET Web API http.delete无法正常工作

FromUri似乎无法使用Web API

无法使用Web API身份登录