我设计了2个网站,第一个位于https://localhost:44300/
,第二个位于https://localhost:44301/
。
在第二个本地主机的Home控制器中,我声明:
[HttpPost]
public ActionResult GetPictureUrl
{
return Json(new { success = true, url = "~/Content/Images/Img001.png" });
}
点击按钮后,我想在第一个localhost中获取json:
<button>Get picture url</button>
<script>
$('button').click(function () {
$.ajax({
url: 'https://localhost:44301/Home/GetPictureUrl',
type: 'POST',
//dataType: 'jsonp' //I'd tried this but still not working
}).done(function (data) {
if (data.success) {
alert(data.url)
}
})
})
</script>
以下是我在控制台日志中遇到的错误:
为什么GET
?
我在ajax中设置type: 'POST'
,但我没有向控制器发送任何内容作为参数。但正如您在上面看到的那样,callback
和_
是什么?
答案 0 :(得分:0)
我已经解决了这个问题。
将这些行添加到web.config
内<system.webServer>
(两个网站)
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" />
</customHeaders>
</httpProtocol>
之后,我可以使用:
$('button').click(function () {
$.ajax({
url: 'https://localhost:44301/Home/GetPictureUrl',
type: 'POST' //or method: 'POST'
}).done(function (data) {
if (data.success) {
alert(data['url'])
}
})
})
感谢@Eranda和@SBirthare