首页 > 解决方案 > 使用 $_REQUEST 通过 AJAX 将数据提交到 url

问题描述

我在将数据发布到 url 时遇到问题,如下所示。我唯一得到的是浏览器控制台中的错误 500。

但是,如果我从 url中删除?mod=printing&sub=personal它工作正常。

 $('.printDocument').click( function () { 

    var userID = $(this).closest('tr').find(".userid").text(); 

        $.ajax({
            type: "POST", 
            url: "/index.php?mod=printing&sub=personal",
            data: {userID : userID},
            success: function(data){
                var win = window.open();
                win.document.write(data);
            }
        })  

    })

有任何想法吗?

标签: phpajax

解决方案


您可以添加失败子句并检查控制台或使用断点,可能包含一些提示:

fail: (function(jqXHR, textStatus, error) {
    console.log(error.message)
    console.log(error.stack)
}

但正如 Umair 所建议的,问题取决于服务器端。

在jQuery网站的旁注中:

弃用通知:jqXHR.success()、jqXHR.error() 和 jqXHR.complete() 回调从 jQuery 3.0 开始被删除。您可以改用 jqXHR.done()、jqXHR.fail() 和 jqXHR.always()。

如果你使用的是最新的 jQuery,你应该这样写:

var request = $.ajax({
  url: '/index.php?mod=printing&sub=personal',
  method: 'POST',
  data: {userID : userID},
  dataType: 'html'
});

request.done(function( data ) {
  var win = window.open();
  win.document.write(data);
});

request.fail(function( jqXHR, textStatus, error ) {
  console.log(error.message)
  console.log(error.stack)
});

使用 jQuery v3.5.0 测试


推荐阅读