首页 > 解决方案 > jQuery getJSON 到 axios

问题描述

我想将 jQuery api 调用更改为 axios api 调用。

jQuery代码如下

$.getJSON('some_url?CART_GOODS_INFO=' + encodeURIComponent(cartData) + '&callback=?', function (data) {
            if (data.IsSuccess) {
                alert('success');
           } else {
                if ($.trim(data.ResultMessage) != '') {
                    alert(data.ResultMessage);
                } else {
                    alert('failed');
                }
            }
        });

我试图将此代码更改为 axios

axios.get('some_url', {
        params: {
            CART_GOODS_INFO: encodeURIComponent(cartData)
        }
      })
      .then((response) => {
        console.log(response)
      })
      .catch((error) => {
        console.log(error)
      })
      .then(() => {
        // always executed
      })

我收到与我的问题无关的 CORS 错误。

无论如何,这似乎是从“jQuery getJSON”到“axios get”的正确代码吗?

我不太确定'&callback=?'jQuery 代码中的内容。

供参考。那some_url不是实际的网址。以防万一您感到困惑。

大家有什么想法,欢迎补充。提前致谢。

标签: jqueryaxios

解决方案


您在 axios 上遇到 CORS 错误,但在 jQuery 上却没有。

CORS 错误意味着您的服务器在响应中没有 Allow access control origin 标头。由于默认情况下浏览器不允许跨域调用,因此您会收到此错误。

在早期,JSONP 被用作解决此问题的方法。在请求中发送回调,服务器通过将响应包装在回调函数中来发送响应。这就是你的 jQuery 代码正在做的事情。在此处阅读更多相关信息。

为了解决这个问题,你必须想办法用 axios 进行 JSONP 调用。

希望能帮助到你。


推荐阅读