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

标签 php javascript ajax json etsy

我有一个调用 ajax 函数的 JavaScript 应用程序,如下所示

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

我尝试访问的ajax url是通过etsyapi 一切都工作正常,直到我尝试在打开 adblock 的情况下访问 Chrome 中的应用程序。它使 ajax 调用完全失败,返回一个错误,并显示“加载资源失败”消息“theActualURL”。

我不知道如何在 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 函数调用中。这允许您将其加载到脚本标记中,并且在执行脚本时以数据作为参数运行该函数。

关于php - 将使用 $.ajax() 和 JSONP 的 API 调用替换为服务器到服务器的 API 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12014672/

相关文章:

javascript - 如何正确关闭 Node.js TCP 服务器?

javascript - 在数据表中使用 JSON 对象而不是数组

javascript - jquery 防止提交时重新加载表单

javascript - 从 CFC 查询结果填充 HTML 表数据

php - Apache 2.4,在浏览器中启用文件夹 View

PHP MySQL 将变量分配给数组数据

javascript - 设置 innerhtml 时出现 IE 未知运行时错误

javascript - 如何发送 MySQL 参数

php - 如何获取未实例化的类(类外)的类名?

javascript - JQuery : . dialog() 不适用于 .classe 选择器的下一个元素