【发布时间】:2016-06-26 23:27:48
【问题描述】:
我的 AngularJS 和 .net WebAPI 目前存在问题。 我可以通过我的 WebAPI 成功获取内容或对象,但是我目前在发布数据时遇到了问题。
我在尝试发布内容时遇到的错误如下:
OPTIONS http://localhost:18130/api/Products XMLHttpRequest 无法加载
http://localhost:18130/api/Products。预检响应有 HTTP 状态码 405 无效
请记住,当我尝试使用 Fiddler 发布时,它工作得非常好,没有任何问题。
以下是我用来发布的 AngularJS 代码:
var data = { "Title": $scope.title, "Description": $scope.description };
$http.post(
'http://localhost:18130/api/Products',
JSON.stringify(data), {
headers: {
'Content-Type': 'application/json; charset=UTF-8'
}
}).success(function (data) {
console.log(data);
});
有人可以指导我正确的方向吗? WebApi 和 AngularJS 应用程序都在不同的域中,这是 CORS 问题吗?发帖时如何解决。
提前谢谢你。
【问题讨论】:
-
尝试在 web.config 中禁用
WebDAV模块 -
它可能安装在 IIS 上。我将发布来自共享主机的示例配置,我们有类似的问题。
-
绝对是CORS,在网上搜索以启用它的web api。这是一个不断发展的过程,所以你会看到不同的方法取决于文章的年龄,但是here is a good starting point
-
您不必致电
JSON.stringify(data)。我相信 Angular 会为您解决这个问题。 -
抱歉,没有注意到关于不同域的部分。您可以尝试使用上面提供的此示例中的包或asp.net site 中的包(我想使用的方法是相同的)。
标签: javascript c# angularjs asp.net-web-api cors