gpt4 book ai didi

javascript - 无法通过 AJAX 在后端通过 POST 获取变量,而在前端则完全没问题

转载 作者:行者123 更新时间:2023-12-03 01:27:23 24 4
gpt4 key购买 nike

好的,所以,这是我的问题。我正在尝试通过 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);

尝试在 localhost(MAMP) 和 Heroku 上部署,这两个地方都有同样的问题。

完整代码可在https://github.com/pjotrleshkin/RSSParsing获取

最佳答案

您好,Pjotr​​ Leš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 代码上创建了一个拉取请求。希望这会对您有所帮助。

关于javascript - 无法通过 AJAX 在后端通过 POST 获取变量,而在前端则完全没问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51466869/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com