php – Greasemonkey AJAX请求不发送数据?
发布时间:2020-12-13 17:18:13 所属栏目:PHP教程 来源:网络整理
导读:我正在用Greasemonkey的GM_xmlhttpRequest()发出一个GET请求: $(".getReview").click(function(){ var videoId = $(this).parents("li").find("a").attr("href"); alert(videoId); GM_xmlhttpRequest({ method: "GET",url: "http://www.amitpatil.me/demos/
我正在用Greasemonkey的GM_xmlhttpRequest()发出一个GET请求:
$(".getReview").click(function(){ var videoId = $(this).parents("li").find("a").attr("href"); alert(videoId); GM_xmlhttpRequest({ method: "GET",url: "http://www.amitpatil.me/demos/ytube.php",data: "username=johndoe&password=xyz123",headers: { "User-Agent": "Mozilla/5.0",// If not specified,navigator.userAgent will be used. "Accept": "text/xml" // If not specified,browser defaults will be used. },onload: function(response) { console.log(response); } }); 这是服务器代码ytube.php: <?php print_r($_REQUEST); print_r($_GET); echo "Hello friends".$_GET['vid']; ?> $_REQUEST =>返回一些与WordPress相关的数据. 我无法弄清楚出了什么问题.我甚至尝试过POST方法. 解决方法
data参数仅适用于POST方法.如果您希望使用GET请求发送数据,请将其附加到URL:
GM_xmlhttpRequest ( { method: "GET",url: "http://www.amitpatil.me/demos/ytube.php?username=johndoe&password=xyz123",// Use no data: argument with a GET request. ... ... } ); 但出于各种原因,最好通过POST发送数据.为此,您需要指定编码: GM_xmlhttpRequest ( { method: "POST",url: "http://www.amitpatil.me/demos/ytube.php",data: "username=johndoe&password=xyz123",headers: { "Content-Type": "application/x-www-form-urlencoded","User-Agent": "Mozilla/5.0",browser defaults will be used. },... ... } ); 如果要发送大量数据或复杂数据,请使用JSON: var ajaxDataObj = { u: username,p: password,vidInfo: [123,"LOLcats Terrorize City!","Five stars"] }; var serializedData = JSON.stringify (ajaxDataObj); GM_xmlhttpRequest ( { method: "POST",data: serializedData,headers: { "Content-Type": "application/json",... ... } ); 您的PHP会像这样访问它: $jsonData = json_decode($HTTP_RAW_POST_DATA); 更新: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |