![](/img/trans.png)
[英]How to get **nested** objects as JSON from Ruby on the backend to AJAX in the front-end
[英]Can't get variable by POST at backend via AJAX, while it's perfectly fine at front-end
好的,这是我的问题。 我试图通过AJAX送我存储在JavaScript变量后端(PHP)标签属性。
$.ajax({
type: "POST",
url: '/requests/mercury.php',
data: {url : $(this).data('link')},
success: function(data){
console.log(data);
}
这是我要传递给CURL请求的URL。
如果我手动编写正确的URL,则CURL请求有效,但是由于某种原因,我无法在后端检索变量。 我试过调试,似乎正在获取一个空数组,但我不知道为什么。
$link = $_POST['url'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://mercury.postlight.com/parser?url=".$link);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"x-api-key: AU5zjyEqyL0LgR8zkb4Iurhlenpn52bGtbiqJA4t",
));
$x = curl_exec($ch);
curl_close($ch);
试图部署在本地主机(MAMP)和Heroku,这两个地方都存在相同的问题。
完整的代码avalible在https://github.com/pjotrleshkin/RSSParsing
嗨,PjotrLeškin,关于HTTP请求方法的问题。 在index.php上,Ajax代码工作正常,因为您正在发送POST请求,但是在链接单击时,您正在打开/requests/mercury.php
这是一个GET请求。 因此,要在/requests/mercury.php
加载时获取参数,您需要$ _GET ['url']并需要将查询字符串与url一起传递。 对于处理GET和POST请求的代码,我所做的更改很少。
echo "<a href='requests/mercury.php' data-link = ".$item->link." target='_blank'>";
至
echo "<a href='requests/mercury.php?url={$item->link}' data-link = ".$item->link." target='_blank'>";
和
$link = $_POST['url'];
至
$link = "";
if (isset($_POST['title'])) {
$link = $_POST['url'];
} else {
$link = $_GET['url'];
}
我已经在您的github代码上创建了pull请求。 希望这会帮助你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.