我试图从JS/Ajax向我的WebAPI发出请求时遇到了问题。在我的解决方案中,我有一个发布在srv02:2400上的Web API,我的网站发布在srv02:2300上
当我导航到页面时http://srv02:2300/all-请求。aspx,页面加载正常,除了应该来自我的API的数据
我得到了一个错误:
XMLHttpRequest cannot load http://srv02:2400/api/requests/find/1. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://srv02:2300' is therefore not allowed access. The response had HTTP status code 400.
但是,如果我把url超文本传输协议://srv02:2400/api/请求/查找/1粘贴在浏览器中,它会给我正确的JSON列表!。
我试图通过以下方式在全球范围内启用CORS,正如API中所建议的那样:
>
通过添加以下内容更新我的WebApiConfig.cs:
var cors=新的EnableCorsAttribute(“http://srv02:2400“,”,”;config.EnableCors(cors);
然而,这并没有起作用。
正如我前面提到的,我正在按照Ajax的要求执行我的请求
$.ajax({
url: "http://srv02:2400/api/requests/find/" + id,
type: "GET",
dataType: 'json',
contentType: 'application/json',
success: function (requests) {
console.log('success');
},
error: function (err) {
if (err) {
console.log(err);
}
}
});
我尝试按照这里的建议将json更改为jsonp,但没有成功。
知道如何解决这个问题吗?
非常感谢。
您的全局属性看起来是错误的。
我认为你想改变两件事。
:2300
而不是:2400
你想要的是:
var cors = new EnableCorsAttribute("http://srv02:2300", "*", "*");
config.EnableCors(cors);
这应该指示浏览器(使用选项响应)如果他们想从http://srv02:2300/*
对于任何动词或标题,都可以。如果另一个域尝试调用此API,它将不正常。
我在javascript中使用Reactjs和通过AJAX使用API。我们如何解决这个问题?以前我使用CORS工具,但现在我需要启用CORS。
问题内容: 我打算使用Ajax将跨域请求发送到soap Web服务。Web服务的URL是:http://example1.asmx?op = GetVOD 我的代码: 在IIS 7服务器端,我已经将这些行添加到文件web.config中 当我在Chrome上运行客户端代码时,出现405错误: 有谁知道如何解决这个问题? 预先感谢 问题答案: 听起来像Web DAV正在阻碍。这是删除它的配置: ht
问题内容: 我正在创建一个使用webpack-dev-server和react-router进行开发的应用程序。 似乎webpack-dev-server是建立在以下假设的基础上的:您将在一个位置拥有一个公共入口点(即“ /”),而react- router允许无限数量的入口点。 我想要webpack-dev-server的好处,特别是对生产力非常有用的热重载功能,但是我仍然希望能够加载react
问题内容: 我试图使CORS请求正常工作。使用以下JS代码,我得到此错误: 这是JS代码: 当我使用chrome的devtools查看网络时,我发现确实没有标题。但是,当我手动加载该网站时,它就存在了! 我使用以下代码设置标题: 希望能有所帮助! 问题答案: 它说这意味着您的服务器应用程序需要调整以接受跨源请求。由于安全原因,默认情况下跨源请求不起作用。您需要启用它们。 对于django,有一个维
我在AngularJS中创建了一个应用程序,并尝试调用Laravel API: MyApp(AngularJS):http://localhost:8080/ API(Laravel样板文件):http://localhost:8000/ api_routes.php: