gpt4 book ai didi

javascript - 如何在 javascript 中将 json 对象发送到 asp.net?

转载 作者:太空宇宙 更新时间:2023-11-03 23:33:22 24 4
gpt4 key购买 nike

我试图用来自 javascript 的 json 字符串/对象调用 asp.net Controller 方法。

asp.net Controller :

public class HomeController : Controller
{

public ActionResult doWork(string data) {
// dowork..
return new EmptyResult();
}
}

在 javascript 中是:

var XHR=new XMLHttpRequest();
XHR.open("GET", 'http://localhost:58476/home/dowork', true);
XHR.setRequestHeader("Accept","application/json");
XHR.onreadystatechange = function () {
if (XHR.readyState == 4 && XHR.status == 200) {
alert('ok');
}else{
alert('not ok');

}
};
XHR.send(JSON.stringify(queryResult));

如果 javascripts 运行它会调用 asp.net 中的 dowork 方法,但数据为空。在 de onreadystatechange 中,它调用“不正常”警报。

在我的控制台日志中我发现了错误:

XMLHttpRequest cannot load http://localhost:58476/home/dowork. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8081' is therefore not allowed access.

有人知道如何解决这个问题吗?

最佳答案

一个简单的解决方案是添加 Access-Control-Allow-Origin。
您可以将其添加到您的 web.config 文件中,例如:

<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>

此外,您只能根据 POST 请求发送数据,因为您正在执行 GET 请求。有关发送方法检查的更多信息 w3schools
这意味着您必须将 XHR.Open 方法更改为 XHR.open("POST", 'localhost:58476/home/dowork', true);

关于javascript - 如何在 javascript 中将 json 对象发送到 asp.net?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31380487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com