从angularjs发布到WebAPI时发出问题

时间:2016-09-02 09:51:09

标签: angularjs post asp.net-web-api cors

我正在尝试从Angularjs向Web Api Action方法发送Post请求。 WebApi和角度相关的代码符号在不同的端口中(因为它们在单个解决方案中的单独项目中)。在发帖请求时我收到错误:

XMLHttpRequest cannot load "API method path here". Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'localhost:64648' is therefore not allowed access.

响应的HTTP状态代码为405.我的POst调用是:

var data = { 'obj': 'text' };

this.PostApiCall = function (controllerName, methodName, obj) {
    result = $http.post('localhost:49551/api/' + controllerName + '/' + methodName, obj)
    .success(function (data, status) {
        alert("All right");
        result = (data);
    }).error(function () { 
        alert("Something went wrong");
    });
    return result;
};

似乎这是与CORS相关的问题,我在我的WebApiConfig中包含了config.EnableCors();。我的控制器中还包含[EnableCors(origins: "localhost", headers: "", methods: "")],以允许来自localhost的所有请求作为我的发布请求来自localhost。我仍然得到同样的错误。对丢失的东西有任何想法吗?

注意:我在localhost所在的所有地方都有Http://,我删除了Http,因为我不允许在我的问题中包含2个以上的链接。

1 个答案:

答案 0 :(得分:0)

您似乎正在遭受$ http

的实施基础知识

阅读此posting-form-data-with-http-in-angularjs

我不确定但是尝试使用127.0.0.1代替