Php 将使用$.ajax()和JSONP的API调用替换为服务器到服务器的API调用
我有一个javascript应用程序调用一个ajax函数,如下所示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
$.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。