Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将使用$.ajax()和JSONP的API调用替换为服务器到服务器的API调用_Php_Javascript_Ajax_Json_Etsy - Fatal编程技术网

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

Php 将使用$.ajax()和JSONP的API调用替换为服务器到服务器的API调用,php,javascript,ajax,json,etsy,Php,Javascript,Ajax,Json,Etsy,我有一个javascript应用程序调用一个ajax函数,如下所示 $.ajax({ url: apiURL, dataType: 'jsonp', success: function(data) { if (data.ok) { //do things }}}); 我试图访问的ajaxurl是通过etsyapi访问的 在我尝试在chrome上使用adblock访问应用程序之前,一切都很好。它使ajax调用完全失败,返回一个错误,其中包含加载资源失败的消息-“theAc

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

$.ajax({ url: apiURL, dataType: 'jsonp', success: function(data) {
    if (data.ok) {
        //do things
}}});
我试图访问的ajaxurl是通过etsyapi访问的 在我尝试在chrome上使用adblock访问应用程序之前,一切都很好。它使ajax调用完全失败,返回一个错误,其中包含加载资源失败的消息-“theActualURL”

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

不幸的是,我对php一点也不了解——我甚至试图理解它的基本结构,而且我还没有在javascript中找到任何解决方法,所以我认为必须用php来完成

有没有最简单的方法在php中使用动态url(从javascript传递到php页面)调用ajax函数,并让它将数组传递回javascript以进行maniuplate

我用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。如果您遇到错误,听起来url是错误的。您是否尝试过将
apirl
放在浏览器的地址栏中打开它


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

通常,人们的意思是使用或服务器到服务器在中间请求中获取相同的数据。想想“中间件”,您正在使用的PHP文件异步获取来自Etsy API的JSON请求是“中间”。(注意,
cURL
很脆弱,我建议使用http流。)您看到示例代码并阅读了说明了吗?Chrome、Adblock和
jsonp
已经被引用。@JaredFarrish在$.ajax中查看他的数据类型。通常情况下,您不会通过ajax加载jsonp,而是通过在页面上写入一个脚本标记,并将src设置为端点的url来加载它。@JaredFarrish啊,很公平,这是什么时候添加的?我必须承认我没有跟上jQuery中的所有变化。1.4、1.5ish?已经有一段时间了,也许一年左右。等着瞧吧。2出来了(我想不会太长)。见我在问题下的评论;这是一个中间件问题。@JaredFarrish听起来是对的。在过去的一年中,我们主要使用Python,很少使用js。