- http://serverA.com/list.php:
html:
<form id="myform">
<input id="inputfield" name="view">
</form>
js:
var inputdata = $('#inputfield').val('ocean-view');
$('#myform').submit(function(e) {
e.preventDefault();
$.ajax({
type: 'GET',
url: 'http://serverB.com/detail.php',
data: inputdata,
dataType: 'jsonp'
});
});
- http://serverB.com/detail.php
php:
<?php
$view = $_GET['callback'].'('.json_encode(name) .')';
?>
html:
<h4><?php echo $view; ?></h4>
代码的作用是:
从服务器a,为输入字段分配一个值"海景",将此表单提交给服务器B,并在h4标记中显示此值。
我不太清楚如何编写服务器端代码来输出值,尽管我已经找到了以下帖子。
这个和这个。
任何形式的帮助都将不胜感激。
更新:我使用YQL来帮助查看jsonp回调响应,这里是json结构:
callback({
"query": {
"count": 1,
"created": "2013-07-29T13:01:12Z",
"lang": "en-US",
"results": {
"h3": {
"class": "mytitle",
"content": "Example"
}
}
}
});
实际上你离成功很近了。。。只要读一下这些要点。
- 每当您发出ajax请求时,浏览器都会发送一个带有相关参数和详细信息的ajax URL。在受尊重的URL上执行PHP代码。它可以以某种格式返回数据。它不能直接返回PHP变量中的数据
格式为:
text/html
json
xml
......
主要针对跨域请求,我们使用JSONP。这意味着PHP脚本将以JSON形式返回数据。所以您只需要直接在脚本中回显您的json_encode
。这将是您的ajax请求的响应。
- 现在,当您在ajax函数中获得数据时,jQuery将使用success:function(response){}作为响应。所以变量响应将包含JSON。您可以使用jQuery选择器访问JSON并将数据放入任何标记中。$().html(response.)
这些东西可以在调试控制台的任何浏览器中进行分析。这就是请求和返回的内容。甚至您也可以在Mozilla中使用Firebug来检查ajax请求。
所以你要做三个改变。
在Ajax函数中编写一个成功函数:
var inputdata = $('#inputfield').val('ocean-view');
$('#myform').submit(function(e) {
e.preventDefault();
$.ajax({
type: 'GET',
url: 'http://serverB.com/detail.php',
data: "inputdata="+inputdata,
dataType: 'jsonp',
success:function(response){
// response will be json type so access it
// print ur json in html tag like resposne is {"data":23}
$(<jquery selector>).html(reponse.data);
}
});
});
<?php
// echo this
$inputdata = $_GET['inputdata'];
// perform you logic ,
// make an array to encode it in json
echo $_GET['callback'].'('.json_encode($responseArr) .')';
?>
并从h4标签中删除PHP代码。