【问题标题】:jQuery AJAX pass url as stringjQuery AJAX 将 url 作为字符串传递
【发布时间】:2014-05-23 19:57:22
【问题描述】:

我有一个将一串变量传递给我的脚本的 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'

提前致谢!

【问题讨论】:

  • 它仍然缺少引号?你试过这样吗jsfiddle.net/6ZUzh/1
  • 网址:此处缺少引号 /scripts/error_check.php",
  • 谢谢!我的测试代码中有引用,但单独传递变量是有效的。
  • 您应该在 PHP 端执行此操作,或者只使用 GET ;)

标签: javascript php jquery ajax


【解决方案1】:

在 url 变量上使用 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'
}); 

【讨论】:

    【解决方案2】:

    不要尝试手动构建表单数据。如果你传递一个对象,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'
    }); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-29
      • 2023-04-02
      • 2012-11-24
      • 2015-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多