Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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 网址&;回调参数_Javascript_Jquery_Ajax_Callback - Fatal编程技术网

Javascript 网址&;回调参数

Javascript 网址&;回调参数,javascript,jquery,ajax,callback,Javascript,Jquery,Ajax,Callback,URL中的&callback参数做什么?我询问的原因是,我正在使用jquery的$.ajax函数运行一个查询,当我在url的末尾包含&callback=?时,我得到一个400(错误请求)错误 以下是我的javascript代码: var energy_query_array = []; var masterEnergyTable_tableid = '145TOXaanydD63tvgVMmCVH0hei0NXNCEK8ekZBg'; var current_date = 'Jan-12';

URL中的
&callback
参数做什么?我询问的原因是,我正在使用jquery的$.ajax函数运行一个查询,当我在url的末尾包含
&callback=?
时,我得到一个400(错误请求)错误

以下是我的javascript代码:

var energy_query_array = [];


var masterEnergyTable_tableid = '145TOXaanydD63tvgVMmCVH0hei0NXNCEK8ekZBg';
var current_date = 'Jan-12';

var energy_query = 'SELECT * FROM ' + masterEnergyTable_tableid; 

var encoded_energy_query = encodeURIComponent(energy_query);
var energy_url = ['https://www.googleapis.com/fusiontables/v1/query'];
energy_url.push('?sql=' + encoded_energy_query);
energy_url.push('&key=' + apiKey); 
//energy_url.push('&callback=?');
$.ajax({
url: energy_url.join(''),
datatype: 'jsonp',
success: function(data) {
           var name_array = data['columns'];
           var data_array = data['rows'][0];
       for(var i = 1; i < data['columns'].length; i++) {
        energy_query_array[name_array[i]] = data_array[i];
       }
     }
});
var-energy\u-query\u-array=[];
var masterEnergyTable_tableid='145ToxaanyDd63TvgVMCvh0Hei0nxncek8ekzbg';
var当前_日期='1月12日';
var energy_query='SELECT*FROM'+masterEnergyTable_tableid;
var encoded_energy_query=encodeURIComponent(energy_query);
var energy_url=['https://www.googleapis.com/fusiontables/v1/query'];
能量url.push('?sql='+编码的能量查询);
能量url.push('&key='+apiKey);
//能量url.push('&callback=?');
$.ajax({
url:energy_url.join(“”),
数据类型:“jsonp”,
成功:功能(数据){
var name_array=data['columns'];
var data_array=data['rows'][0];
对于(var i=1;i
console.log(能量查询数组)

我已经注释掉了我在url中添加
&callback=?
的那一行,因为当我将其保留在查询中时,会返回错误:
“消息”:“参数回调的值无效:?”

然而,在前面的代码中,我使用相同的回调参数对google fusion表执行了类似的查询

代码末尾的console.log调用向控制台显示一个空数组。

阅读

它们以一个
开头,其他参数与
相关。除非对字符串进行编码,否则
不应位于字符串的开头

然后,服务器可以使用键值对,因为这是执行标准GET请求的方式

例如:

http://myserver.com?name=josh&age=24&state=il


您的web服务器可能在某个地方被查询字符串阻塞。

回调用于JSONP请求,这意味着在跨域请求获取JSON数据时不能使用。它不使用XHR包装器,而是使用一个脚本标记,然后传递一个回调querystring参数,该参数指向用于执行传递内部所有JSON数据的函数。通过这种方式,您可以拥有一个不知道应用程序如何工作的数据点,但当您传入回调时,它将启动一个包含数据的函数。这允许您从任何浏览器使用它的API。

与查询字符串(或主机名和片段id之间的任何其他位置)中的任何其他数据一样,它向服务器提供一些数据。其含义完全由该服务器上运行的软件决定

有一种约定是使用
callback
作为值的键,该值将用作RESTful API中JSON-p响应中要调用的函数的名称。是一种为不支持CORS的浏览器提供跨源访问的web服务的方法

e、 g

我会给你

asdf([1,2,3]);

显然,JSON-p要求服务器支持JSON-p响应的发送。如果您尝试使用jQuery执行跨源请求,它将(默认情况下)修改请求,前提是服务器将按照通常的约定支持JSON-P。

您可能正在使用JSONP,而您尝试连接的服务器不支持它。
回调
参数是使JSONP工作所必需的。实际请求URI是什么样子的?请显示您的javascript代码
asdf([1,2,3]);