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

时间:2015-10-23 07:13:18

标签: javascript php jquery ajax wordpress

我在Wordpress插件中遇到wp_remote_get问题。

我想要做的是使用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();

1 个答案:

答案 0 :(得分:1)

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

echo $response['body'];

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

Rowspan = n