我想向远程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) {
}
});
};
但是我需要在发送请求之前更改源名称。
请参考下面的图片。
2条答案
按热度按时间iyzzxitl1#
简而言之:你不能
如MDN上所述; Origin是一个'forbidden'头文件,这意味着你不能通过编程来改变它。
您需要配置Web服务器以允许CORS请求。
要启用CORS,请将此添加到您的Web.config中
或者在Global.asax.cs中
6ioyuze22#
正如Baksteen所说,你不能在JavaScript中改变这个头值。您必须编辑服务器配置以允许跨域请求。
***但是:***在阅读了您的评论后,我认为您需要一个仅用于调试和测试的解决方案。
在这种情况下,您可以使用Chrome并使用特殊的不安全参数启动它。如果您向Chrome提供此参数,它将允许您跨域请求。
我尝试了Firefox和Chrome的几个附加组件,但它们不适用于最新版本的浏览器。所以我建议切换到chrome并使用上面的参数来测试你的API调用。
如果您对更强大的解决方案感兴趣,您可能希望使用调试代理,如Fiddler from Telerik。您可以编写自定义规则,因此Fiddler会在请求离开您的PC之前更改您的标头。但你必须深入研究这个工具,然后才能使用它的所有力量。这可能很有趣,因为它可以帮助您解决不仅仅是这个调试问题。