首先,这是我的第一个带有跨域ajax请求的项目。 现在,我有一个测试页面,只有一个按钮,一个输入框和jquery。 我想要做的是将ajax请求发送到另一个domani(我有用户名和密码,但我不知道它必须使用它以及如何)并传递查询,然后打印结果。< / p>
这是我的剧本:
jQuery(document).ready(function ($){
$("#btn").on("click", function(){
var searchRequest = $("#testSearch").val();
var url = {"https://vk.com/search?c%5Bq%5D="};
var musicSearchRequest = searchRequest + "&c%5Bsection%5D=audio";
var vkLogin = new XMLHttpRequest();
vkLogin.open("GET", url + musicSearchRequest, true);
vkLogin.send();
$.ajax({
url: url,
type: "POST",
crossDomain: true,
dataType: 'jsonp',
data: musicSearchRequest,
success: function(){console.log("ok");},
error: function (){console.log("no");}
});
$("#result").html(vkLogin.responseText);
console.log(vkLogin.responseText);
});
});
这是html(我认为这不是很重要,但无论如何我都会复制):
<button id="btn">click</button>
<input type="text" id="testSearch"></input>
<div id="result"></div>
现在,点击,这是打印到我的调试控制台的结果:
XMLHttpRequest无法加载 https://vk.com/search?c%5Bq%5D=katy%20perry&c%5Bsection%5D=audio。没有 &#39;访问控制允许来源&#39;标题出现在请求的上 资源。起源&#39; null&#39;因此不允许访问。
我对CORS进行了一些搜索,但仅仅因为我是初学者,我希望有人能够逐步解释下一步该怎么做才能解决这个错误。
谢谢!
答案 0 :(得分:1)
你误解了CORS的工作原理。这是一个很好的解释:https://vk.com/search?c%5Bq%5D=
错误消息:
No 'Access-Control-Allow-Origin' header is present on the requested resource
正在谈论从 vk.com收到的标题。除非您在vk.com上控制服务器(听起来不是这样),否则您无法修改vk.com服务器返回到您的应用程序的标头。所以这对你不起作用。