Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 到不同域的Post偶尔会失败_Javascript_Jquery_Post - Fatal编程技术网

Javascript 到不同域的Post偶尔会失败

Javascript 到不同域的Post偶尔会失败,javascript,jquery,post,Javascript,Jquery,Post,我有一个问题,当“张贴”到一个不同的网站作为一个会话转移到我的公司工作的一部分。他们要求我们通过“Post”请求导航到他们的站点,查询字符串中包含会话令牌(是的,请求中没有正文) 这是我用于Post请求的代码: navigateByPost = function(path, parameters) { var form = $('<form />'); form.attr("method", "post"); form.attr("action", path

我有一个问题,当“张贴”到一个不同的网站作为一个会话转移到我的公司工作的一部分。他们要求我们通过“Post”请求导航到他们的站点,查询字符串中包含会话令牌(是的,请求中没有正文)

这是我用于Post请求的代码:

navigateByPost = function(path, parameters)
{
    var form = $('<form />');

    form.attr("method", "post");
    form.attr("action", path);

    parameters && $.each(parameters, function (key, value)
    {
        var field = $('<input />');

        field.attr("type", "hidden");
        field.attr("name", key);
        field.attr("value", value);

        form.append(field);
    });

    $(document.body).append(form);
    form.submit();
}
大多数情况下,这是正确的,但有时,在完全随机的时间间隔内,我看到请求被取消,导航从未发生。这就是当导航失败时,我在chrome开发工具中看到的情况:

我已经登录了Firefox,但问题似乎没有出现,所以我不知道真正的问题是什么。我知道这在另一方不会是个问题,因为它不可能在一毫秒内到达那里并被拒绝。它一定是浏览器里的东西,但我不知道


请帮帮我,伙计们,我的桌子快用完了,我的头要撞到了

我发现上面显示的代码实际上运行正常。我发现连接了代码的链接实际上是导致问题的原因

之前,我得到的元素是这样的:

$(document).on("click", "a.sessiontransfer", function(e) {
    e.PreventDefault();
    doSessionTransfer();
    return false;
});
因此,如果页面中添加了任何其他链接,他们将使用此功能。我发现这种方法在所有情况下都不起作用,偶尔会产生我在上面的屏幕截图中粘贴的错误。此后,我将此更改为以下内容:

$("a.sessiontransfer").off().on("click", function(e) {
    e.PreventDefault();
    doSessionTransfer();
    return false;
});
我还没有在我尝试过的任何设备上出现过这种故障,但它有一个不幸的副作用,即如果我向页面添加任何链接,我将不得不重新调用此功能来重新钩住所有元素,确保首先删除现有的点击


我希望这将有助于节省一些人几天的调查,并在这个过程中节省一些办公桌

在对navigateByPost()的调用中缺少包含“path”变量的选项;还是有一些我看不到的魔法在发生?是在安全和非安全之间发布数据?例如,http/https@limelights我已经在调用中包含了路径,但是post请求中没有要发送的参数,因此第二个参数为空。@devsatish连接当前为http»http,但是,如果我们可以让它工作,它们将来将是https»https。@brins0但是如果参数在某些情况下为空,这不会导致表单没有字段吗?
$("a.sessiontransfer").off().on("click", function(e) {
    e.PreventDefault();
    doSessionTransfer();
    return false;
});