C# 无法使用IIS Express对同一解决方案中的两个独立项目发出跨域AJAX请求(localhost:50675到localhost:27081)

C# 无法使用IIS Express对同一解决方案中的两个独立项目发出跨域AJAX请求(localhost:50675到localhost:27081),c#,jquery,asp.net,ajax,asp.net-web-api,C#,Jquery,Asp.net,Ajax,Asp.net Web Api,在Visual Studio 2015中,我的解决方案中有两个项目:ASP.NET MVC应用程序和ASP.NET Web API应用程序。MVC应用程序在IIS express中使用的端口与Web API应用程序不同 在调试器中,我看到我最终出现在ChangeName方法Web API控制器中,但从未设置参数,然后在控制台中我看到错误。这些错误与跨域问题有关 向不同的域发出jqueryajax请求有这么复杂吗?当我使用小提琴时,一切都很好 下面代码所在的应用程序的域是:localhost:50

在Visual Studio 2015中,我的解决方案中有两个项目:ASP.NET MVC应用程序和ASP.NET Web API应用程序。MVC应用程序在IIS express中使用的端口与Web API应用程序不同

在调试器中,我看到我最终出现在ChangeName方法Web API控制器中,但从未设置参数,然后在控制台中我看到错误。这些错误与跨域问题有关

向不同的域发出jqueryajax请求有这么复杂吗?当我使用小提琴时,一切都很好

下面代码所在的应用程序的域是:localhost:50675,我正在尝试向同一解决方案中的另一个项目发出请求,该解决方案是localhost:27081

这是我的AJAX请求:

$("#btnChangeName").click(function() {
    var name = $("#Name").val();

    var url = 'http://localhost:27081/api/products/changename';
    $.ajax({
        url: url,
        type: 'POST',
        dataType: 'text',
        data: JSON.stringify({name: name}),
        success: successFuncApi,
        error: function(xhr, ajaxOptions, thrownError) {
            alert(xhr.status);
            alert(thrownError);
        }
    });
});
以下是我在控制台中看到的一个错误: 无法加载XMLHttpRequest。 请求的资源上不存在“Access Control Allow Origin”标头。 因此,不允许访问源“”。 响应的HTTP状态代码为500


我不确定该错误是否是由于我的控制器错误造成的,因为参数为null,或者它是否是我的问题的根源。

当您将应用程序移至生产环境时(取决于Web服务器的设置),该错误可能会消失。至于现在,我会尝试一些东西,正如这里所解释的。如果这不适合您的情况,还有其他方法可以实现同样的功能


您还可以在IIS上部署应用程序。为客户端创建应用程序,然后为webapi向该应用程序添加新应用程序。

当您将应用程序移至生产环境时,此错误可能会消失(取决于Web服务器的设置)。至于现在,我会尝试一些东西,正如这里所解释的。如果这不适合您的情况,还有其他方法可以实现同样的功能


您还可以在IIS上部署应用程序。为客户端创建应用程序,然后为webapi向该应用程序添加新应用程序。

发生此错误的原因是您将请求从源(源)发送到另一个源

您所需要做的就是将后端(或ASP.NET Web API)中的跨源代码添加到标头中


链接将为您提供更多信息,并指导您启用跨源请求。

发生错误的原因是您将请求从源(源)发送到另一个源

您所需要做的就是将后端(或ASP.NET Web API)中的跨源代码添加到标头中


链接将为您提供更多信息,并指导您启用跨源请求。

您使用什么浏览器?您是否在所有浏览器上都看到相同的问题?我知道IE对这个东西很挑剔。我用的是Chrome。这是一个正常的问题还是应该只是工作?在postman和fiddler中,请求和响应工作得很好,但我没有在fiddler中使用jQueryAjax。。。这可能是你的问题?你使用什么浏览器?您是否在所有浏览器上都看到相同的问题?我知道IE对这个东西很挑剔。我用的是Chrome。这是一个正常的问题还是应该只是工作?在postman和fiddler中,请求和响应工作得很好,但我没有在fiddler中使用jQueryAjax。。。这可能是你的问题?