@Søren からの Postman に関する便利な投稿。これまで使用したことはありません。残念ながら、 https://www.google-analytics.com/batchへの呼び出しが Javascript で機能しなかった理由を理解するのにまだ時間がかかりました。問題として CORS 403 エラーが挙げられました。Postman では問題なく動作していましたが、Postman からの JS 出力はそうではありませんでした。
var settings = {
"async": true,
"crossDomain": true,
"url": "https://www.google-analytics.com/batch",
"method": "POST",
"headers": {
"cache-control": "no-cache",
"postman-token": "bec425da-11af-ec17-f702-fd7d01133ee4"
},
"data": "v=1&tid=UA-XXXXXX-1&cid=754654B98786B&t=event&ec=Test1&ea=click&cd=XYZ&an=XYZ&aid=123&av=3.0&aiid=1.0\r\nv=1&tid=UA-XXXXXX-1&cid=754654B98786B&t=event&ec=Test2&ea=click&cd=XYZ&an=XYZ&aid=123&av=3.0&aiid=1.0\r\nv=1&tid=UA-XXXXXX-1&cid=754654B98786B&t=event&ec=Test3&ea=click&cd=XYZ&an=XYZ&aid=123&av=3.0&aiid=1.0"
}
$.ajax(settings).done(function (response) {
console.log(response);
});
したがって、Fiddler を使用して Postman の呼び出しを比較すると、Raw ビューで確認できた唯一の実際の違いは、Postman が POST https://www.google-analytics.com/batchを使用していたのに対し、 JS は OPTIONS https://www. google-analytics.com/batch . 生のスクリプトを実行し、それを OPTIONS から POST に変更すると、正常に機能しました。では、なぜ私のものは POST として送信されなかったのですか? 次に、ヘッダーが一致する必要があることについて何かを読みました。一致しないと、POST として実行されません。それで解決策は?ヘッダーを削除します...
var settings = {
"async": true,
"crossDomain": true,
"url": "https://www.google-analytics.com/batch",
"method": "POST",
"data": "v=1&tid=UA-XXXXXX-1&cid=754654B98786B&t=event&ec=Test1&ea=click&cd=XYZ&an=XYZ&aid=123&av=3.0&aiid=1.0\r\nv=1&tid=UA-XXXXXX-1&cid=754654B98786B&t=event&ec=Test2&ea=click&cd=XYZ&an=XYZ&aid=123&av=3.0&aiid=1.0\r\nv=1&tid=UA-XXXXXX-1&cid=754654B98786B&t=event&ec=Test3&ea=click&cd=XYZ&an=XYZ&aid=123&av=3.0&aiid=1.0"
}
$.ajax(settings).done(function (response) {
console.log(response);
});
これを機能させるにはかなりの時間がかかりました。これは非常に単純なことであり、これが他の誰かの助けになることを願っています.