javascript - 在弹出函数中运行 AJAX?

标签 javascript php jquery ajax

我正在尝试在弹出函数中运行 ajax。

基本上,我有一个非常简单的 JavaScript 函数,我需要在其中运行 ajax 调用。

为了解释这一点,这是我的简单弹出函数:

if(window.opener && !window.opener.closed) {

}
window.close(); // Closing the popup

这就是我在其中运行 ajax 的方式:

if(window.opener && !window.opener.closed) {
    var  img = $('#img').val();

    alert(img);
    $.ajax({
        url:"folder/page.php",
        data:{img:img},
        type:"POST",
        contentType:"application/x-www-form-urlencoded",
        success:function(result)
        {

        }
    });
}
window.close(); // Closing the popup

我就是这样调用它的:

<a href="#" onClick="window.open('folder/page.php', 'Popup', 'width=640,height=480');">Some Text/a>

当我运行代码时,弹出窗口正确打开,但根本没有执行任何 ajax。

我已将其放入我的 page.php 中,以确保 ajax 被发送/发布:

$img = $_POST['img'];

$file = fopen("test.txt","w");
echo fwrite($file,$img);
fclose($file);

但是 test.txt 文件中没有插入任何内容,并且它始终为空。

有人可以就这个问题提出建议吗?

编辑:

这是我的隐藏输入字段(#img):

<input type="hidden" id="img" value="data:image/jpeg;base64,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">

最佳答案

您需要在 ajax 成功函数中添加 window.clode() 。 另外,假设您使用高于 1.8 的版本,我稍微更改了您的 ajax 调用

弃用通知:从 jQuery 1.8 开始,jqXHR.success()、jqXHR.error() 和 jqXHR.complete() 回调已弃用。要为最终删除准备代码,请改用 jqXHR.done()、jqXHR.fail() 和 jqXHR.always()。

if(window.opener && !window.opener.closed) {


var img = window.opener.$("#img").val(); 

    var request = $.ajax({
        url:"folder/page.php",
        data:{img:img},
        type:"POST",
        beforeSend:function(){ console.log(img); }
});
request.done(function( result ) {
 // your result manipulation function
 ....
 window.close(); // close pop-up
});

request.fail(function( jqXHR, textStatus ) {
  alert( "Request failed: " + textStatus ); 
window.close(); // close pop-up
});

}

关于javascript - 在弹出函数中运行 AJAX?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37032047/

相关文章:

javascript - 如何强制用户从下拉菜单和按钮中选择一个值以启用保存按钮?

JavaScript:为什么 onKeyDown 和 onKeyUp 在 onFocus 在此代码中工作时不起作用

PHP 循环不会遍历每一行

javascript - 为什么我的文字被导航栏遮住了?

javascript - React navigation didfocus 事件监听器在类组件和功能组件之间的工作方式不同

javascript - Twitter Bootstrap 日期时间选择器未在模式中正确显示

php - Kohana 3 ORM as_array 返回 ORM 数组

php - mysql如何使用GROUP BY函数获取多条记录

javascript - 将 javascript 脚本附加到 head 不起作用

javascript - jQuery ui 日历点击错误