我正试图将一个只有一个参数的简单表单发送到我的后端程序员制作的API,他告诉我,我所需要做的就是使用ajax通过POST将一个参数发送到给定的URL。
问题是我收到一个不存在"Access Control Allow Origin"标头错误。
我已经通读了这个问题,并试图实现第一个答案的解决方案,但没有成功。当我通过hurl测试API时,它可以毫无问题地工作。
这是我用来发送表单的代码
$( 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);
}
}
});
});
});
请参阅http://api.jquery.com/jquery.ajax/