数据中具有location.href的jquery ajax帖子不起作用

问题描述 投票:0回答:2

如果使用POST(或location.href)作为数据,是什么导致window.location.href类型无法获得预期的结果?

此代码不起作用(不返回任何内容):

$.ajax({
    type: "POST",
    url: 'page.asp',
    data: {'q': location.href},
    success: function(short_link,status){ 
        console.log('short_link = '+short_link);
        console.log('status = '+status);
    }
});

enter image description here

我确实看到q值是在浏览器的网络信息中发送的,但是由于302对象已移动状态代码,以某种方式看起来POST重定向到GET了。就像那里所说的:Returning redirect as response to XHR request

enter image description here

但是,如果我将其更改为data: {'q': 'to some string'},则可以使用。

此外,如果我更改代码以使用GET(并相应地使用'page.asp'中的代码,它也可以工作:

$.ajax({
    type: "GET",
    url: 'page.asp?q='+location.href,
    success: function(short_link,status){ 
        console.log('short_link = '+short_link);
        console.log('status = '+status);
    }
});
jquery ajax post location http-status-code-302
2个回答
0
投票

我认为您必须对url进行编码,以替换特殊字符。


0
投票

我看错地方了。

page.asp检查了导致错误的SQL注入功能。

© www.soinside.com 2019 - 2024. All rights reserved.