Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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 使用jQuery的外部API GET()请求_Javascript_Jquery - Fatal编程技术网

Javascript 使用jQuery的外部API GET()请求

Javascript 使用jQuery的外部API GET()请求,javascript,jquery,Javascript,Jquery,我正在使用位于此处的,我决定测试它。我不能。我认为这是因为来自外部站点的跨浏览器AJAX请求。。但我不知道还有别的办法。例如,这里有一个测试 看到了吗?这是我的密码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/

我正在使用位于此处的,我决定测试它。我不能。我认为这是因为来自外部站点的跨浏览器AJAX请求。。但我不知道还有别的办法。例如,这里有一个测试

看到了吗?这是我的密码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />


    <title>IMDB api</title>

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script>

    <script type="text/javascript">
    $(document).ready(function()
{
    $('#movie').keyup(function() {

       var yourMovie = $("#movie").val();
  $("#debug").append("You are searching for ... "+yourMovie+"\n");

dataString = "t=Avatar";

$.ajax({
type: "GET",
url: "http://www.imdbapi.com/",
cache: false,
data: dataString,

success: function(html){
//$("#more").after(html);
alert("Success!");
}

});
});
});
</script>

</head>
<body>


<form action="#" method="get" enctype="text/html" >
<input type="text" id="movie" maxlength="50" />

</form>

<div id="other">
  Trigger the handler
</div>
<br />
<textarea id="debug" style="width: 500px;height:150px;border:1px solid black;font-face:typewriter;"></textarea><br />
<textarea id="more" style="width: 500px;height:150px;border:1px solid red;font-face:typewriter;"></textarea>

</body>
</html>

IMDB api
$(文档).ready(函数()
{
$('#movie').keyup(函数(){
var yourMovie=$(“#movie”).val();
$(“#调试”).append(“您正在搜索…”+您的电影+”\n);
dataString=“t=Avatar”;
$.ajax({
键入:“获取”,
url:“http://www.imdbapi.com/",
cache:false,
数据:dataString,
成功:函数(html){
//$(“#更多”)。在(html)之后;
警惕(“成功!”);
}
});
});
});
触发处理器


我正在使用谷歌浏览器

以下是对我有效的方法:

    <script type="text/javascript">
    $(document).ready(function()
{
    $('#movie').keyup(function() {

       var yourMovie = $("#movie").val();
  $("#debug").append("You are searching for ... "+yourMovie+"\n");

dataString = "callback=?&t=Avatar";

$.getJSON('http://www.imdbapi.com/', dataString, function(html){
//$("#more").after(html);
alert("Success!");
});


});
});
</script>

$(文档).ready(函数()
{
$('#movie').keyup(函数(){
var yourMovie=$(“#movie”).val();
$(“#调试”).append(“您正在搜索…”+您的电影+”\n);
dataString=“callback=?&t=Avatar”;
$.getJSON('http://www.imdbapi.com/,数据字符串,函数(html){
//$(“#更多”)。在(html)之后;
警惕(“成功!”);
});
});
});

您可以使用jQuery运行跨域Ajax。在呼叫站点设置
crossDomain
选项:

跨域(添加1.5)布尔默认值:对于相同的域请求为false, 如果要强制跨域请求,则跨域请求为true 在同一域上的请求(如JSONP),设置 跨域到true

编辑-

实际上,你到底有什么问题?我尝试了这个,它正确地返回Json

响应示例:

HTTP/1.1 200正常缓存控制:无缓存杂注:无缓存内容类型: text/html;charset=utf-8过期:-1服务器:Microsoft IIS/7.0 X-AspNet-Version:4.0.30319 X-Powered-By:ASP.NET日期:4月2日星期一 2012 22:28:14格林尼治标准时间内容长度:618

{“标题”:“阿凡达”,“年份”:“2009”,“评级”:“PG-13”,“发布”:“12月18日” 2009年,“类型”:“动作、冒险、幻想、科幻”,“导演”:“詹姆斯” 卡梅隆,“作家”:“詹姆斯·卡梅隆”,“演员”:“萨姆·沃辛顿,佐伊” 萨尔达娜,西格尼·韦弗,米歇尔·罗德里格斯,“阴谋”:“截瘫者” 被派往月球潘多拉执行独特任务的海军陆战队队员变得支离破碎 在服从他的命令和保护他认为是自己的世界之间 “家”,“海报”:http://ia.media-imdb.com/images/M/MV5BMTYwOTEwNjAzMl5BMl5BanBnXkFtZTcwODc5MTUwMw@@.u V1_SX320.jpg,“运行时”:“2 小时42 分钟,“评级”:“8.1”,“投票数”:“386930”,“ID”:“tt0499549”,“回复”:“正确”}


这是一个跨域AJAX调用,因此需要回调。jQuery使这变得非常简单,只需将
?callback=?
添加到url中即可

url: "http://www.imdbapi.com/?" + dataString + "&callback=?"
跳过
data=dataString
,在这种情况下,会更容易(我发现)

请尝试此操作,然后继续:

$.getJSON("http://www.imdbapi.com/?" + dataString + "&callback=?").success(function(data){
    console.log(data); // will contain all data (and display it in console)
})
这与:

$.ajax({
type: "GET",
url: "http://www.imdbapi.com/?"+dataString+"&callback=?",
dataType: 'JSONP'
success: function(data){
    console.log(data);
}

向URL添加
回调
参数以使用JSONP:

dataString = "t=Avatar&callback=?";
使用
$
将导致jQuery自动为您生成回调函数并自动处理响应

建议阅读:

更换:

$.ajax({
type: "GET",
url: "http://www.imdbapi.com/",
cache: false,
data: dataString,

success: function(html){
//$("#more").after(html);
alert("Success!");
}
});


嗯,对我来说还是不行。我用未定义的类型取消了它:嗯,它对我仍然不起作用。如果添加数据类型JSONP或?callback=,我会使用未定义的类型取消它:I.imgur.com/yWaF6.pngyeah?
$.getJSON('http://www.imdbapi.com/?' + dataString, function(json_data){
alert(JSON.stringify(json_data));
});