使用$ .ajax()和JSONP替换API调用以及服务器到服务器API调用

时间:2012-08-18 00:12:59

标签: php javascript ajax json etsy

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

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

我试图访问的ajax网址是通过etsyapi 一切正常,花花公子,直到我尝试使用adblock访问chrome中的应用程序。它使ajax调用完全失败,返回错误,无法加载资源 - “theActualURL”消息。

我无法弄清楚如何通过javascript来解决这个问题并被告知我需要进行一次php调用以使其正常工作。

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

有没有最简单的方法在动态网址(从javascript传递到php页面)中调用php中的ajax函数并让它将数组传递回javascript到maniuplate?

我已经用PHP了 -

<?php
    $json = array();

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

<击>

忽略上述内容,我对jQuery已经过时了。即便如此,如果API端点真的用jsonp响应,你也不应该需要php。如果您收到错误,这听起来像是错误/错误的网址。您是否尝试过将apiURL放入浏览器的地址栏?

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