尝试将数据发送到其他域。我目前正在使用localhost。
我现在试图让它尽可能简单
JS:
window.onbeforeunload = function() {
var url = "http://localhost/web/x/boot/ajax/x.php?";
$.post(url, { thing: "value" }, function(data) {});
};
Chrome会在Developer Tools > Timeline
中将此请求显示为:
Self Time: 0
Start Time: 6 ms
Resource: localhost/web/x/boot/ajax/x.php?
Request Method: POST
Call Stack:
send @ jquery.min.js:4
m.extend.ajax @ jquery.min.js:4
m.(anonymous function) @ jquery.min.js:4
window.onbeforeunload @ x.js:249
和我最简单的php文件来记录任何加载:
<?php
//include 'config.php';
$handle = fopen('temp.txt','w') or die('Cannot open file: ');
fwrite($handle, 'hit');
fclose($handle);
exit();
?>
由于某种原因,文件没有被点击。如果我从上面的Chrome请求中复制网址并将其粘贴,那就可以了。
它所遇到的PHP文件是否需要所有普通的HTML标签等?这可能是问题吗?
$.post(url,{},function(res){
alert('successful');
}).error(function(xhr,textStatus,error){
alert(xhr.statusText + "\n" + textStatus + "\n" + error +"." );
});
返回错误:
<blank>
error
error
.
答案 0 :(得分:1)
要在Localhost中测试跨域,您可以使用您的IP地址(如192.168.0.1)进行请求。
window.onbeforeunload = function() {
var url = "http://{ip-address-here}/web/x/boot/ajax/x.php?";
$.post(url, { thing: "value" }, function(data) {});
};
检查来自其他机器的同一来电。
答案 1 :(得分:0)
window.onbeforeunload:您的请求可能会在窗口关闭之前被浏览器杀死。
答案 2 :(得分:0)
知道了。不使用jQuery,post或ajax。返回javascript发出HTTP请求。我不想在网页上加载数据。我实际上是在用户离开页面时发送数据。
以下点击并创建我上面提到的文件
window.onbeforeunload = function() {
//... create params
var XHR = new XMLHttpRequest();
XHR.open('POST', "http://localhost/web/x/boot/ajax/x.php?", false);
//XHR.open('POST', "http://127.0.0.1/web/x/boot/ajax/x.php?", false); // also works
//XHR.open('POST', "http://{ip-address}/web/x/boot/ajax/x.php?", false); // also works
XHR.send(params);
}
正在发送参数。现在就弄清楚如何处理它:p
非常感谢!