这是我的第一个帖子/主题,一段时间以来我一直没有活跃在论坛上,因为坦白地说我不需要它,但这只是我的意思。
我尽我所能尝试了一切-我的意思是一切,我是一名狂热的试错测试员。

情况:
jQuery通过Ajax发布一些数据,这些数据主要从$('#textarea')收集到服务器上的php文件中。
如果数据> X字节,则在Ajax错误处理程序中显示404 Not Found和404 Html页面。
否则,一切都会顺利进行,我会得到结果。

我必须指定我在执行计算之前将其发布到加载Wordpress的wp-blog-header.php的php文件中,因为该代码旨在成为WPplugin的一部分。

  • 我尝试按照某些建议返回 header (“HTTP / 1.1 200 OK”),考虑到WP正在更改 header 以找不到文件作为系统的一部分,并且它在某些情况下在本地解决了该问题,但没有远程解决。
  • 我试图在ajax调用中设置Content-Length。
  • 我在处理Ajax调用的WP类型和在插件的文件夹中拥有自己的.php文件之间切换。
  • 我在ajax文件的开头交替调用wp-load.php,wp-config.php和wp-blog-header.php,但仍然一无所获(在本地解决了一些问题,但不是远程解决)
    没事。唯一有效的方法是修剪发送到.php文件的内容。 2000-2500B工作正常,3000 + B给我404找不到。

  • 这可能是什么?服务器上的post_data_size为8M。
    在某些情况下,这可能与SSL相关吗?这是服务器端吗?
    请帮忙,

    附言我的Javascript:
    var data1 = {
        action: 'get-tables',
        html: $('#content').val(),
        nonce: kwd_settings.nonce
    };
    $.ajax({
        url: kwd_settings.ajax_url,
        type: 'POST',
        data: data1,
        scriptCharset: 'utf-8',
        timeout: 10000, /*10 seconds*/
        beforeSend: function( xhr ) {
            xhr.setRequestHeader("Content-length", $('#content').val().length+500);
            showProgress(true);
        },
        error: function (request, ajaxOptions, thrownError) {
            alert(request.statusText);
            alert(request.responseText);
            showProgress(false);
        },
        success: function( response ) {
            var r= response;
            showResponse(r);
        }
    });
    

    最佳答案

    我知道这是一个老问题,但是由于没有解决方案,而且我自己也找到了解决方案(花了我整整一整天的时间进行故障排除),因此我认为值得发布。问题是IIS中的默认“请求过滤”选项。我必须打开“请求过滤”屏幕,然后单击“编辑功能设置”(在屏幕右侧),并将最大允许内容长度,最大URL长度和最大查询字符串长度更改为允许我的最大数量帖子。然后,我重新启动了IIS,错误404停止了,我的帖子完成了:-)

    由于某种原因,我在网上找不到任何答案。

    关于javascript - jQuery,Ajax,WP,张贴4000B长文本:找不到404(2000B = OK)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8134925/

    10-12 00:02
    查看更多