繁体   English   中英

通过发布跨站点HTTP

[英]Cross Site HTTP via Post

尝试将数据发送到其他域。 我目前在本地主机上工作。

我现在尝试使其尽可能简单

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
 .

为了在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) {});
    };

检查来自其他机器的相同呼叫。

window.onbeforeunload:关闭窗口后,您的请求可能会在完成之前被浏览器杀死。

得到它了。 不使用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

不管怎么说,多谢拉!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM