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