gpt4 book ai didi

javascript - 在 wordpress 插件中使用 wp_remote_get 时 Ajax 调用失败

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:47:01 24 4
gpt4 key购买 nike

我的 Wordpress 插件中的 wp_remote_get 有问题。

我想要做的是在我的主要公共(public)类中使用 ajax 调用一个方法。但问题是,当在其中使用 wp_remote_get 函数时调用失败。它应该执行 API 调用并将数据返回给 jQuery。当我注释掉 wp_remote_get 时,调用工作正常并返回响应。我有什么想法可以让这项工作成功吗?

处理调用的方法:

    public function countryLookupApiCall() {
if (isset($_POST['action']) && isset($_POST['country'])) {
$country = $_POST['country'];
$apiKey = $this->getApiKey();
$url = $this->url . $country . '/callCharges?apiKey=' . $apiKey . '&response=JSON';
$response = wp_remote_get($url);
echo $response;
die();
}
}

jQuery:

jQuery(document).ready(function() {
jQuery("#countryLookupForm").submit(function(e){
var country = jQuery("#selectCountry").val();
var action = 'countryLookupResponse';

jQuery.ajax ({
type: 'POST',
url: countryLookup.ajaxurl,
dataType: 'json',
data: {action: action, country: country},

success: function(data) {
//do something with this data later on
var result = jQuery.parseJSON(data);
}
});
});
});

Wordpress 操作都注册得很好,因为当我不使用 wp_remote_get 时调用有效

编辑:解决方案非常简单,我只需要添加 e.preventDefault();

最佳答案

您需要在代码中添加错误检查。这可以帮助您找出导致问题的原因。

    public function countryLookupApiCall() {
if (isset($_POST['action']) && isset($_POST['country'])) {
$country = $_POST['country'];
$apiKey = $this->getApiKey();
$url = $this->url . $country . '/callCharges?apiKey=' . $apiKey . '&response=JSON';
$response = wp_remote_get($url);
if (is_wp_error($response)) {
$error_code = $response->get_error_code();
$error_message = $response->get_error_message();
$error_data = $response->get_error_data($error_code);
// Process the error here....
}
echo $response;
die();
}
}

您还对 wp_remote_get 结果使用了 echo。如文档中所定义 wp_remote_get 返回 WP_Error 或数组实例。所以你应该使用这样的东西:

echo $response['body'];

关于javascript - 在 wordpress 插件中使用 wp_remote_get 时 Ajax 调用失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33296714/

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