1

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

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

我试图访问的 ajax url 是通过 etsyapi 一切正常且花花公子,直到我尝试使用 adblock 访问 chrome 中的应用程序。它使 ajax 调用完全失败,返回一个错误,并带有 Failed to load resource-"theActualURL" 消息。

我不知道如何在 javascript 中解决这个问题,并被告知我需要进行 php 调用才能使其正常工作。

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

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

我已经用 php-

<?php
    $json = array();

    ????????????????????????

    $jsonstring = json_encode($json);
    echo $jsonstring; 
?>

但不明白如何从 javascript 访问动态 url。

4

1 回答 1

0

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

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

忽略以上,我对 jQuery 已经过时了。即便如此,如果 API 端点确实使用 jsonp 响应,则您不应该需要 php。如果您遇到错误,这听起来像是 url 错误/错误。您是否尝试过apiURL将其放在浏览器的地址栏中简单地打开?

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

于 2012-08-18T00:21:15.753 回答