gpt4 book ai didi

javascript - 不确定如何使用 AJAX

转载 作者:行者123 更新时间:2023-11-30 17:18:51 26 4
gpt4 key购买 nike

我对此很陌生。我已经阅读了学习 javascript 和 HTML 的书籍,所以不幸的是我对此了解不多。

我以前从未使用过 AJAX,所以不确定它是如何工作的,在网上搜索,但发现所有示例都太复杂了。

基本上我想做的是保存一个播放列表(尽管不使用 cookie)。每个人都可以看到并添加到其中的东西(类似于评论部分)。这只是一个例子,我在做别的事情,但是html + js会有点大。只是想知道我将如何处理它,以便我能够(希望)理解它并将其应用到其他地方。

这将是正文,在它下面是我的代码(目前我所有的代码都在 [head] 中):

<body>
<form>
<input type="text" id="songInput" size="40" placeholder="Song Name">
<img id="addButton" src="button.png">
</form>
<ul id="playlist"></ul>
</body>

<script>
window.onload = load;
function load() {
var button = document.getElementById("addButton");
button.onclick = buttonClick;
}
function buttonClick() {
var text = document.getElementById("songInput");
var song = text.value;
var button = document.getElementById("addButton");
var add = document.createElement("li");
add.innerHTML = song;
var ul = document.getElementById("playlist");
ul.appendChild(add);
}
</script>

最佳答案

首先您必须了解 AJAX 是什么。 AJAX 不是您可以使用的“工具”,而是技术的名称(异步 JavaScript + XML)。基本上它的意思是“从/向服务器获取/发布数据。”

在 vallina JavaScript 中, XMLHttpRequest 允许您向服务器发送数据和从服务器接收数据:

var xhr = new XMLHttpRequest();          //Create an XMLHttpRequest object
xhr.open('get', url); //Set the type and URL
xhr.onreadystatechange = function(){ //Tell it what to do with the data when state
// changes
if(xhr.readyState === 4){ //4 is the code for "finished"
if(xhr.status === 200){ //Code 200 means "OK"
//success
var data = xhr.responseText; //Your data
}else{
//error //Deal with errors here
}
}
};
xhr.send(null); //After finished setting everything, send the
// request. null here means we are not send-
// ing anything to the server

它可能看起来很复杂,并且xhr重复了很多次。更不用说we have to deal with when executing in IE的问题了.

有解决方案。我们将使用库来简化流程,让它为我们完成繁重的工作。

In jQuery ,这是你必须做的基本 XMLHttpRequest :

$.ajax({
url: url,
data: { /*data here*/ },
type: /*"GET" or "POST"*/
}).done(function(data){
//success
}).fail(function(){
//error
});
//Not complicated at all with jQuery

由于 AJAX 是一组发送/接收数据的技术,因此有更多方法可以完成“相同”的事情。您可能意识到上面的代码仅适用于具有相同域的 URL(您服务器上的页面)。为了绕过这个限制,还有另一种称为 JSONP 的技术。 .听起来很花哨,但它的意思只是“使用 <script> 标签来通过该限制”。当然,jQuery 可以满足您的需求:

$.ajax({
url: url,
data: { /*data here*/ },
type: /*"GET" or "POST"*/,
dataType: "JSONP" //specifying dataType to be JSONP
}).done(function(data){
//success
});

这是一个使用 JSONP 从维基百科获取内容的简单示例:http://jsfiddle.net/DerekL/dp8vtjvt/
用正常的 XMLHttpRequest调用Wikipedia's server不会工作。然而,通过利用 script tags are not restricted by the Same-Origin Policy 的事实我们可以实现同样的目标。请注意,要使 JSONP 正常工作,服务器必须在内部进行编程以允许返回带有包装回调调用的 JSON。

关于javascript - 不确定如何使用 AJAX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25562465/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com