C# 无法使用IIS Express对同一解决方案中的两个独立项目发出跨域AJAX请求(localhost:50675到localhost:27081)
在Visual Studio 2015中,我的解决方案中有两个项目:ASP.NET MVC应用程序和ASP.NET Web API应用程序。MVC应用程序在IIS express中使用的端口与Web API应用程序不同 在调试器中,我看到我最终出现在ChangeName方法Web API控制器中,但从未设置参数,然后在控制台中我看到错误。这些错误与跨域问题有关 向不同的域发出jqueryajax请求有这么复杂吗?当我使用小提琴时,一切都很好 下面代码所在的应用程序的域是:localhost:50675,我正在尝试向同一解决方案中的另一个项目发出请求,该解决方案是localhost:27081 这是我的AJAX请求: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
$("#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。。。这可能是你的问题?