如何在ajax中发送权限?

时间:2013-09-13 13:39:50

标签: php jquery

我试着做这样的事情:

function ajaxGetId(val)
{
    $.ajax({
      type: "POST",
      url: "getID.php", // Your PHP script URL
      data: { html: val } // Data you want to pass to the PHP script
    }).done(function( response ) {
      alert( response ); // Do something with what the PHP output or die silently
    });
}

并且php文件就是这样的例子:

$url = $_POST['url'];
$parts = parse_url($url);
return $parts;

问题是我收到很多警告,里面有很多HTML标签。你能告诉我这是什么问题吗?

3 个答案:

答案 0 :(得分:2)

这不符合您的想法:

return $parts;

当您进行AJAX调用时,您不是在PHP中调用函数。你正在申请一个页面。该页面与您在浏览器中查看的任何其他页面没有什么不同。唯一的区别在于该页面呈现的内容。

通常,对于AJAX调用,您通常希望呈现JSON数据。例如,如果您通过AJAX将一些动态内容加载到页面中,您可能还想呈现HTML。

话虽如此,为了向页面呈现信息,您不使用return。但是,您可以使用echo

之类的内容
$url = $_POST['url'];
$parts = parse_url($url);
echo $parts;

这将导致响应是发布的url值的纯文本表示形式。 (注意,你也不是实际上发布一个名为“url”的值。我认为你的意思是使用:$_POST['html']代替。)

您可以通过将值作为JSON数据回显来为此添加更多结构。例如:

echo '{ "url" : "' . $parts . '" }';

然后在您的JavaScript代码中,您将获得一个实际的JSON对象而不是纯文本,并且您可以直接访问其属性:

alert(response.url);

随着您的数据结构化程度越来越高,您可以使用PHP's json_encode() function轻松将其转换为JSON数据以回应客户端。

答案 1 :(得分:0)

改为:

html代替urlecho代替return

$url = $_POST['html'];
$parts = parse_url($url);
echo $parts;

在您的ajax data: { html: val }html您提出请求的变量。

答案 2 :(得分:0)

尝试使用$ url = $ _POST ['html'];而不是$ url = $ _POST ['url'];

它会正常工作