Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.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
Javascript 在服务器上创建AJAX/JSON回调函数_Javascript_Php_Jquery_Ajax_Json - Fatal编程技术网

Javascript 在服务器上创建AJAX/JSON回调函数

Javascript 在服务器上创建AJAX/JSON回调函数,javascript,php,jquery,ajax,json,Javascript,Php,Jquery,Ajax,Json,我正在创建一个类似广告的服务,并使用AJAX从另一个web服务器获取一些图片链接。问题是,有人能举例说明如何在对第二个web服务器进行AJAX调用时为其创建响应吗?我一直在网上搜索答案,但没有找到任何能帮助我解决这个问题的方法。谢谢。JSONP响应基本上只是一段JavaScript,它是一个函数调用,参数是数据的JavaScript对象或数组。您应该查找回调querystring变量以用作函数名 PHP示例: // the data to return $data = array('image'

我正在创建一个类似广告的服务,并使用AJAX从另一个web服务器获取一些图片链接。问题是,有人能举例说明如何在对第二个web服务器进行AJAX调用时为其创建响应吗?我一直在网上搜索答案,但没有找到任何能帮助我解决这个问题的方法。谢谢。

JSONP响应基本上只是一段JavaScript,它是一个函数调用,参数是数据的JavaScript对象或数组。您应该查找
回调
querystring变量以用作函数名

PHP示例:

// the data to return
$data = array('image' => 'http://placehold.it/100x100');

// default callback name if none set
$function = 'callback';

// if callback set, override the default
if(isset($_GET['callback'])){
    // filter the callback so it can only contain a-zA-Z0-9
    $function = preg_replace("/[^a-zA-Z0-9]+/", "", $_GET['callback']);
}

// output
echo $function . '('  . json_encode($data) . ');';
通过
调用时的示例http://yoursite/data.php?callback=abc

abc({ "image" : "http://placehold.it/100x100" });
通过jQuery使用此服务将是:

$.ajax({
   url : 'http://yoursite/data.php?callback=?',
   dataType : 'jsonp',
   success :  function(response){
       console.log(response.image);
   }
});

JSONP有用吗?如果我尝试使用JSONP,问题是,一旦客户机发出请求,如何在其他web服务器上处理它并返回结果?比如说,我试图请求的网页上是否有其他内容。那些额外的东西会寄给我吗?不知道你的意思。您只能访问页面响应的内容。如果它是JSONP,您只能访问数据部分(函数的参数)。如果只是手动输入url,页面会响应所有显示的信息,对吗?是否存在.ajax调用既不能成功也不能出错的问题?因为我已经尝试发出请求并添加了成功或错误,但是没有一个正在执行。您能显示页面响应的输出是什么吗?谢谢您的帮助!我现在设法让一切都运转起来,似乎我开始更清楚地理解这一点。