【发布时间】:2019-12-12 02:20:42
【问题描述】:
我想将一个 ajax 函数从 jquery 转换为纯 javascript
我已经尝试过了,但它的反应方式与我尝试使用普通 js 时 url 没有收到响应的方式不同
这是我的 jquery
(function ($){
try{
var event_category = 'a';
var event_name = 'b';
var page_url = 'c';
var url = "myurl";
var data = {
event_category: event_category,
event_name: event_name,
page_url: page_url
};
$.ajax({
crossDomain: true,
type: "POST",
url: "myurl",
data : {event_category: event_category,
event_name: event_name,
page_url: page_url
}
});
} catch(e){console.log(e)};
})(jQuery);
这是我尝试过的
var event_category = 'action';
var event_name = 'click';
var page_url = 'test';
var request = new XMLHttpRequest();
request.open('POST', 'myurl');
request.setRequestHeader("Content-Type", "application/json; utf-8");
params = {
event_category: event_category,
event_name: event_name,
page_url: page_url
}
request.send(JSON.stringify(params));
不知道我应该改变什么
编辑:
基于我在开发者工具上检查网络数据的其中一个 cmets jquery 对此格式的标题有响应 enter image description here enter image description here
但是javascript发送的数据是这种格式
基本上,javascript 不会以 url 参数格式发送它。不知道如何强制它以相同的格式发送它
【问题讨论】:
-
你有什么错误吗?
-
没有错误,事实上我有一个nodejs服务器,当我在jquery上做它时接收信息,但如果我用纯javascript做它不会收到它,所以我想知道是否转换我所做的就是缺少一些东西。
-
所以基本上网络调用本身没有触发不是
-
在浏览器的开发者工具中打开网络标签。运行有效的 jQuery 代码并查看请求 URL 和标头显示的内容。将它们复制到文本编辑器或视觉比较程序中。现在对新的 JavaScript 代码做同样的事情。您应该能够立即看到两者之间的不同之处。
-
@MichaelGeary 谢谢你让我走上了正轨。 jquery 将此数据返回格式 event_category=a&event_name=b&page_url=c 但 javascript 给出此 {"event_category":"d","event_name":"e","page_url":"f"}
标签: javascript jquery ajax fetch-api