Jquery 具有跨域请求的简单ajax POST
我试图将一个只有一个参数的简单表单发送到我的后端程序员制作的API,他告诉我,我所需要做的就是使用ajax通过POST将一个参数发送到给定的URL 问题是我得到一个没有“访问控制允许来源”标题是存在错误 我通读了这个问题,并试图实现第一个答案的解决方案,但没有成功。当我通过测试API时,它可以正常工作 这是我用来发送表单的代码Jquery 具有跨域请求的简单ajax POST,jquery,ajax,post,cross-domain,Jquery,Ajax,Post,Cross Domain,我试图将一个只有一个参数的简单表单发送到我的后端程序员制作的API,他告诉我,我所需要做的就是使用ajax通过POST将一个参数发送到给定的URL 问题是我得到一个没有“访问控制允许来源”标题是存在错误 我通读了这个问题,并试图实现第一个答案的解决方案,但没有成功。当我通过测试API时,它可以正常工作 这是我用来发送表单的代码 $( document ).ready(function() { $('.btnEnviar').click(function(){
$( document ).ready(function() {
$('.btnEnviar').click(function(){
$.ajax({
type: 'POST',
url: 'http://xxxxx.xxx/subscribers/subscribeEmail',
datatype: 'jsonp',
async: true,
success:function(){
try{
alert("ok");
}catch (e){
alert(e);
}
}
});
});
});
以下是表格:
<form class="newsletter" method="post" action="http://xxxxx.xxx/subscribers/subscribeEmail">
<input type="text" placeholder="mail here!" class="input" name="email">
<input type="submit" class="send pull-right hidden" value="Subscribe me!" placeholder="Subscribe me!">
<span class="btnEnviar"><i class="fa fa-envelope"></i></span>
</form>
这个过程中不应该涉及任何PHP
了解我可能做错了什么吗?尝试将
crossDomain:true
和xhrFields:{withCredentials:true}
添加到请求中:
$( document ).ready(function() {
$('.btnEnviar').click(function(){
$.ajax({
type: 'POST',
url: 'http://xxxxx.xxx/subscribers/subscribeEmail',
datatype: 'jsonp',
async: true,
xhrFields: {
withCredentials: true
},
crossDomain: true,
success:function(){
try{
alert("ok");
}catch (e){
alert(e);
}
}
});
});
});
请参见如果我发送表单时没有使用ajax,那么我会从API获得正确的响应,因此我的ajax脚本有问题尝试了它,并获得一个net::ERR\u NAME\u RESOLUTION\u失败error@user2770956可能是因为这不是真正的URL,但那是你在问题中给出的。真是个白痴。我修复了它,但是现在我得到了与以前相同的错误,没有“访问控制允许源站”。服务器端需要在响应中设置“访问控制允许源站”头。告诉你的后端程序员添加它。但是如果我用hurl.it尝试API(它也是另一个域),它会正常工作