javascript - Jquery ajax 与 XMLHttpRequest

标签 javascript jquery ajax xmlhttprequest

这里我有两个相同的请求:jquery ajax 和 XMLHttpRequest 但 JQ ajax 不起作用...所以想知道有什么区别:

JQ ajax:

var urlAjax = "http://www.agroagro.com/v1/register";

$.ajax({
type: "POST",
url: urlAjax,
contentType: "application/x-www-form-urlencoded",
data: {
                    name: "Mile3",
                    email: "new1@new.com",
                    password: "face1book"
                },
  crossDomain:true, 
  success: function(data) { console.log(data); },
error: function(data) {console.log(data); },
dataType: 'json',
beforeSend: function (xhr) {
            xhr.setRequestHeader("Access-Control-Allow-Origin", "*");
        },
        headers: {
            'Access-Control-Allow-Origin': '*'
        }
});


}); 
});

这个ajax请求不起作用...给我404错误...

XMLHttp请求:

var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
  if (xhr.readyState == 4) {"done"}
}

xhr.open("POST","http://agroagro.com/v1/register",true);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send("name=Henry&email=Ford@ford.com&password=1234");

这个请求工作正常,但我需要知道有什么区别,两者都调用 POST url...

我还需要在 JQ ajax 请求中更改哪些内容才能工作?

最佳答案

Access-Control-Allow-Origin 是一个响应 header ,因此它不应出现在请求 header 列表中:https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#The_HTTP_response_headers

删除以下内容:

beforeSend: function (xhr) {
    xhr.setRequestHeader("Access-Control-Allow-Origin", "*");
}

headers: {
    'Access-Control-Allow-Origin': '*'
}

关于javascript - Jquery ajax 与 XMLHttpRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27197821/

相关文章:

javascript - Ghost - 嵌入式 JavaScript 不会触发 d3js

javascript - 如何在 slider 操作事件之前获取 slider 的值?

jquery - 在 Aurelia 应用程序中绑定(bind) FullCalendar 时超出最大调用堆栈大小

javascript - 如何从ajax post请求中获取参数

javascript - 如何使用 jQuery 检索标签的内容?

jquery - 合并对话框代码

jquery - 中心缩放图像的更好方法?

javascript - AJAX 调用错误 - 状态 400(错误请求)

javascript - 如何通过ajax动态加载历史页面

javascript - 如何在 JavaScript 中使用 POST 方法获取 API 的访问 token ?