Rak*_*esh 3 javascript asp.net jquery asp.net-web-api
我想向远程API发送AJAX请求.
function Gettest(CourseID) {
var param = { "CourseID": CourseID};
param = JSON.stringify(param);
$.ajax({
type: "Post",
url: apiurl + "Course/DelCoursetargetedaudience",
contentType: "application/json; charset=utf-8",
data: param,
dataType: "json",
success: function (data) {
},
error: function (response) {
}
});
};
Run Code Online (Sandbox Code Playgroud)
但是我需要在发送请求之前更改源名称.
请参考下图.
Bak*_*een 12
简而言之:你做不到.
如MDN所述 ; Origin是一个'禁止'标题,意味着你无法以编程方式更改它.
您需要配置Web服务器以允许CORS请求.
将其添加到Web.config中
<system.webServer>
<!-- Other stuff is usually located here as well... -->
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
<system.webServer>
Run Code Online (Sandbox Code Playgroud)
正如 Baksteen 所说,您不能在 JavaScript 中更改此标头值。您必须编辑服务器配置以允许跨源请求。
但是:阅读您的评论后,我认为您只需要一个用于调试和测试的解决方案。
在这种情况下,您可以使用 Chrome 并使用特殊的不安全参数启动它。如果您向 Chrome 提供此参数,它将允许您跨域请求。
请勿将此 chrome 实例用于测试页面以外的其他用途!
chrome --disable-web-security --user-data-dir
Run Code Online (Sandbox Code Playgroud)
我为 Firefox 和 Chrome 尝试了几个附加组件,但它们不适用于最新版本的浏览器。所以我建议切换到 chrome 并使用上面的参数来测试你的 API 调用。
如果您对更强大的解决方案感兴趣,您可能需要使用调试代理,例如Telerik 的 Fiddler。您可以编写自定义规则,以便 Fiddler 在请求离开您的 PC 之前更改您的标头。但是您必须深入研究该工具,然后才能使用其所有功能。这可能很有趣,因为它可以帮助您解决的不仅仅是这个调试问题。
| 归档时间: |
|
| 查看次数: |
16867 次 |
| 最近记录: |