jQuery AJAX将url作为字符串传递

时间:2014-05-23 19:57:23

标签: javascript php jquery ajax

我有一个ajax函数,它将一串变量传递给我的脚本但是我有一个变量需要包含一个带参数的完整url。

var1和var2会变成$ _POST变量,但我需要将整个url变量保存为字符串。

var url = "http://domain.com/index.php?var1=blah&var2=blah";

var dataArray = "rooftop_id=" +rooftop_id+ "&url=" +url;

        $.ajax({
            type: "POST",
            url: "/scripts/error_check.php",
            data: dataArray,
            dataType: 'json'
        }); 

我希望我的$ _POST变量看起来像这样:

$_POST['rooftop_id'] would be '1234'
$_POST['url'] would be 'http://domain.com/index.php?var1=blah&var2=blah'

提前致谢!

2 个答案:

答案 0 :(得分:6)

在网址变量上使用encodeURIComponent()

var url = "http://domain.com/index.php?var1=blah&var2=blah";

var dataArray = "rooftop_id=1&url=" +encodeURIComponent(url);

$.ajax({
    type: "POST",
    url: "/scripts/error_check.php",
    data: dataArray,
    dataType: 'json'
}); 

答案 1 :(得分:0)

请勿尝试手动构建表单数据。如果你传递一个对象,jQuery会为你编码(通过适当的转义)。

var url = "http://domain.com/index.php?var1=blah&var2=blah";

$.ajax({
    type: "POST",
    url: "/scripts/error_check.php",
    data: { url: url, rooftop_id: rooftop_id },
    dataType: 'json'
});