将使用 $.ajax() 和 JSONP 的 API 调用替换为服务器到服务器的 API 调用

Replace an API call using $.ajax() and JSONP with a server-to-server API call

本文关键字:API 服务器 调用 JSONP 替换 ajax      更新时间:2023-09-26

>我有一个调用ajax函数的javascript应用程序,看起来像这样

$.ajax({ url: apiURL, dataType: 'jsonp', success: function(data) {
    if (data.ok) {
        //do things
}}});

我试图访问的 Ajax URL 是通过 Etsyapi一切都很好,直到我尝试在 Chrome 中访问打开广告拦截的应用程序。它使 ajax 调用完全失败,返回错误,其中包含无法加载资源 - "实际URL"消息。

我不知道如何在javascript中解决这个问题,并被告知我需要做一个php调用才能让它工作。

不幸的是,我不知道关于php的第一件事,我甚至试图理解它的基本结构,而且我无法在javascript中找到任何解决方法,所以我认为它必须用php来完成。

有没有最简单的方法可以使用动态 url(从 javascript 传递到 php 页面)在 php 中调用 ajax 函数,并让它将数组传回 javascript 进行操作?

我用PHP走到了这一步-

<?php
    $json = array();
    ????????????????????????
    $jsonstring = json_encode($json);
    echo $jsonstring; 
?>

但不了解如何从 JavaScript 访问动态 URL。

如果它真的使用 jsonp,你不应该需要 php。将您的$.ajax...替换为:

var newScript = document.createElement('script');
newScript.src = apiURL;
document.head.appendChild(newScript);

忽略上述内容,我对jQuery已经过时了。即便如此,如果 API 端点真的使用 jsonp 响应,则不需要 php。 如果您收到错误,听起来网址是错误的/错误的。您是否尝试过通过将apiURL放在浏览器的地址栏中来简单地打开它?

JSONP是跨域AJAX限制的解决方法,它将返回的数据包装在JavaScript函数调用中。这允许您将其加载到脚本标记中,并且在执行脚本时将数据作为参数运行该函数。