如何使用 jquery ajax 向 PHP 页面发送异步请求
how to send asynchronous request to php page using jquery ajax
我是Web开发的新手,为大学项目创建一种社交网站。我想在每次用户数据库中有新消息时在消息菜单中更新消息计数(例如主页上的 facebook 消息菜单)
但是学习ajax是令人沮丧的,但是在网络上搜索并从一些书籍中阅读了一些主题之后,我找到了解决方案,我可以在主页的js文件中进行$ajax调用,并将数据存储('name'=>'user')
存储在javascript cookie中的数据,我在用户登录后加载主页时创建, 到一个PHP文件,该文件将在数据库中的recent_msg表中搜索以获取登录用户的最新消息(如果有的话),获取PHP文件后将创建带有代码片段的HTML文件,并且另一个jQuery代码会将该文件片段从文件附加到消息列表菜单。
PHP部分不是问题,但是我如何使用jQuery Ajax API将用户名发送到PHP文件,这是我认为可以应用的代码,但我怀疑这是否是正确的方式
$(document).ready(function{
setInterval ( function()
{
var usr = getCookie("name");
$.ajax ( {
url: '/phpScripts/recent_msg.php',
type: 'POST',
data: usr,
success: function(data){
}
} );
},10);
});
代码中成功函数的目的是什么?
data
需要采用对象/键值对的形式(EDIT:或者如果是字符串,则作为有效的查询字符串)。 data: { name: usr }
. 但是,由于它位于 cookie 中,您的 PHP 页面将可以直接访问该 cookie。 更安全的做法是让您的会话 cookie 呼叫 PHP 页面用户是谁,而不是依靠 AJAX 调用来告诉 PHP 页面它是谁。
http://php.net/manual/en/features.cookies.php
所以我会从你的 AJAX 调用中完全删除data
,在你的 PHP 页面中,使用 $_COOKIE["name:"]
然后,从 PHP 页面传回的任何 HTML 都将在 data
调用中到达。 如果是 HTML,那么只需将其添加到您的 HTML 中到某个消息div 中,例如。
<div id="recent-messages"></div>
<script type="text/javascript">
$(document).ready(function{
setInterval ( function()
{
var usr = getCookie("name");
$.ajax ( {
url: '/phpScripts/recent_msg.php',
type: 'POST',
data: usr,
success: function(data){
$('#recent-messages').html(data);
}
} );
},10);
});
</script>
每当 ajax 调用成功完成时,都会执行成功函数。这意味着该页面实际上存在,并且页面上没有发生服务器端错误。变量数据将包含从服务器/phpScripts/recent_msg.php 上的页面返回的任何信息。通常,这是json或xml,但这完全取决于您对recent_msg.php的实现。
如果用户必须登录,这意味着您必须创建一个会话。 在这种情况下,您可以将登录用户的信息(例如其姓名)存储在服务器上的$_SESSION
中,而无需将其存储为cookie。 由于$_SESSION
已经在服务器上,因此在任何情况下都无需通过 ajax 发送该数据。
- 如果需要登录,Angularjs$http拦截器会暂停异步请求
- RxJS异步请求更新
- Node js中间件,用于向mongo发出异步请求
- AJAX-如何在不冻结浏览器的情况下逐个发出异步请求
- 如何等待异步请求完成
- 为什么Chrome似乎异步请求Javascript文件
- 使用异步请求多个网址
- 在HTML中,可以在没有Ajax和/或Javascript的情况下创建异步请求
- 节点 JS 使用异步请求同步工作流
- 如何处理客户端节点上的异步请求
- 具有异步请求的 NodeJS
- 使用请求-承诺的嵌套异步请求
- 将数据从异步请求添加到 WebSQL 数据库时出错
- 使用 Jasmine 测试触发异步请求的方法
- 状态 = 0 的异步请求
- 在 Node.js 服务器内发出异步请求错误:“类型错误:对象 #<对象> 没有方法'_implicitHeader'”
- 如何使用 jquery ajax 向 PHP 页面发送异步请求
- 承诺解析错过异步请求循环的一个值
- 用于处理成功、失败、重试的异步请求的设计模式?(JavaScript)
- 如何处理对循环中发出的多个异步请求(AJAX 调用)的响应