我有一个调用 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/