Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Ajax和JavaScript,如何在不使用JQuery的情况下发布数组?

Ajax和JavaScript,如何在不使用JQuery的情况下发布数组?
EN

Stack Overflow用户
提问于 2015-12-25 21:11:56
回答 2查看 1.3K关注 0票数 5

我通过Ajax调用PHP函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var ajax = new XMLHttpRequest();
ajax.open("POST", "file.php", true);
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

ajax.onreadystatechange = function(){
    if(ajax.readyState == 4 && ajax.status == 200){
        var returnVal = JSON.parse(ajax.responseText);

        // do stuff here //
    }
}   
ajax.send('term=' + javaScriptArray);

一切都很好,在发送单个值时,这是一个不错的选择,但当我尝试发布一个数组时,就会出现问题。

在我的PHP函数中,我检查POST变量是否是一个数组:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
is_array($_POST['term']);

但它总是返回假的。

回音值会打印如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
value1,value2,value3

而是作为单个字符串而不是数组。

This SO thread的答案不是作为数组发送,而是作为多个不同的变量发送,并且使用GET:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ajax.open("GET","myserver.com/myfunction.php?var1=1&var2=2&var3=3",true);

我发送的数据在项目数中总是可变的,因此作为数组发送对我来说是最好的选择。对于我所做的工作来说,PHP中的简单is_array()要简单得多。

我看过设置多个变量:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for(var i = 0; i < argument.length; i++){
    postString += 'arg' + i + '=' + argument[i] + '&';
}
ajax.send(postString);

但这仍然没有真正实现我所尝试的目标(同样是多个变量)。

我还试着用相同的变量名发送它们:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ajax.send('arg=one&arg=two&arg=three');

但每一个连续的一次都会覆盖它的前身。

我对使用JQuery的解决方案不感兴趣。--我不需要整个库,这是我唯一需要的东西。

编辑1

我也想保留它为POST

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-25 21:22:45

若要将参数视为数组,则必须使用[]符号。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var postArray = new Array();
for(var i = 0; i < argument.length; i++){
    postArray[i] = 'arg[]=' + encodeURIComponent(argument[i]);
}
ajax.send(postArray.join('&'));
票数 7
EN

Stack Overflow用户

发布于 2015-12-25 21:23:28

您需要澄清PHP,因为它是您要发送的数组。您通常可以通过添加[]来做到这一点,就像在PHP中一样。因此,在您的示例中,尝试如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ajax.send('arg[]=one&arg[]=two&arg[]=three');
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34468677

复制
相关文章
Jquery和Ajax
1、  ajax基础知识(http://www.0377joyous.com/archives/484.html) 2、  load()函数示例代码 <button id=”send”>触发</but
苦咖啡
2018/05/07
1.2K0
Js原生Ajax和Jquery的Ajax
一、Ajax概述 1.什么是同步,什么是异步 同步现象:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待 卡死状态 异步现象:客户端发送请求到服务器端,无论服务器是否返回响应,客户端都可以随 意做其他事情,不会被卡死
忆想不到的晖
2022/04/13
19.6K0
Js原生Ajax和Jquery的Ajax
jQuery封装的AJAX使用
jQuery 中的 Ajax jQuery为我们提供了更强大的Ajax封装 $.ajax({}) 可配置方式发起Ajax请求 $.get() 以GET方式发起Ajax请求 $.post() 以POST方式发起Ajax请求 $('form').serialize() 序列化表单(即格式化key=val&key=val) url 接口地址 type 请求方式 timeout 请求超时 dataType 服务器返回格式 data 发送请求数据 beforeSend: function () {} 请求发起前调用
用户1220053
2018/02/09
2.9K0
JavaScript强化教程——jQuery AJAX 实例
本文为 H5EDU 机构官方 HTML5培训 教程,主要介绍:JavaScript强化教程 —— jQuery AJAX实例
IMWeb前端团队
2019/12/04
6300
JavaScript强化教程——jQuery AJAX 实例
本文为H5EDU机构官方HTML5培训教程,主要介绍JavaScript强化教程——jQuery AJAX实例。文章介绍了AJAX的基本概念,以及使用AJAX的应用程序案例,并详细讲解了jQuery的load()方法进行AJAX请求的方法和示例。最后,通过一个完整的示例,展示了如何使用jQuery实现AJAX请求,并加载外部内容到指定的元素中。
IMWeb前端团队
2018/01/08
1.1K0
jQuery ajax - ajax() 方法jQuery ajax - ajax() 方法
http://www.w3school.com.cn/jquery/ajax_ajax.asp
一个会写诗的程序员
2018/08/17
14.5K0
jquery ajax步骤,jquery ajax(ajax请求的五个步骤jQuery)
AJAX是与服务器交流数据的艺术,它在不重载全部页面的情况下,完成了对部分网页的更新。
全栈程序员站长
2022/08/29
1.7K0
jquery ajax步骤,jquery ajax(ajax请求的五个步骤jQuery)
jQuery1.0 - jQuery1.0.4 之 JavaScript实现AJAX
AJAX系列文章包括 “JavaScript实现Ajax”,“XMLHttpRequest对象详解”和“contentType与Spring那些事” 等文章。
用户7293182
2022/01/06
1.1K0
jQuery1.0 - jQuery1.0.4 之 JavaScript实现AJAX
JavaScript 学习-39.jQuery Ajax请求
前言 ajax()方法 语法 $.ajax(url, options); options常用参数: async: 是否异步,默认true 异步 type: 请求方式get/post url: 请求url地址 contentType: 请求头部参数 data: 发到服务器的数据 dataType: 预期服务器返回数据类型 success: 请求成功调用此函数 error: 请求失败调用此函数 beforeSend(XHR):发送请求前可修改 XMLHttpRequest 对象的函数,如添加自定义 HTTP 头
上海-悠悠
2022/06/02
1K0
JavaScript 学习-39.jQuery Ajax请求
jQuery,和嵌入其中的Ajax
jQuery库是一个 JavaScript 文件,您可以使用 HTML 的 <script> 标签引用它:
PM吃瓜
2019/08/12
3.1K0
jQuery,和嵌入其中的Ajax
python的jQuery-Ajax使用
from django.http import JsonResponse,HttpResponse import json def ax(request): if request.method == 'GET': return render(request,'ax.html') if request.method == 'POST':         name = request.POST.get('name')         age = request.POST.get('age') if na
陈不成i
2021/06/21
1K0
jquery中ajax的使用(java)
AJAX方式 js:界面 var prjContextPath='<%=request.getContextPath()%>'; $(document).ready(function(){ //===============GET============================== $("#username").blur(function(){ $.ajax({ type: "GET", url: pr
HUC思梦
2020/09/03
1.4K0
jQuery中使用ajax,$.post
 jQuery.post( url, [data], [callback], [type] ) :使用POST方式来进行异步请求 参数: url (String) : 发送请求的URL地址. data (Map) : (可选) 要发送给服务器的数据,以 Key/value 的键值对形式表示。 callback (Function) : (可选) 载入成功时回调函数(只有当Response的返回状态是success才是调用该方法)。 type (String) : (可选)官方的说明是:Type o
Ryan-Miao
2018/03/13
1.2K0
jQuery的ajax
今天公司实习生问我jQuery的ajax怎么写,这玩意不是很简单吗 $.ajax({ url: "/cowBeer", //url method: "post", //请求方式 contentType: "application/json", //参数类型 data: JSON.stringify({ //这里面是参数 "name":"cowBeer"
阿超
2022/08/16
6970
Jquery和PHP Ajax JSON
本文由来源 21aspnet,由 javajgs_com 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。
Java架构师必看
2021/03/22
1.5K0
ajax的jquery写法和原生写法
Ajax被认为是(Asynchronous(异步) JavaScript And Xml的缩写)。现在,允许浏览器与服务器通信而无须刷新当前页面的技术都被叫做Ajax.
三哥
2018/12/28
1.9K0
使用Jquery的$.ajax 解决csrf问题
csrf也就是laravel默认在表单提交中都会验证csrf字串,没有的话就不会予以通过。
无道
2019/11/13
2.9K0
使用Jquery的$.ajax 解决csrf问题
js中的ajax和jquery中的ajax学习笔记
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/100806.html原文链接:https://javaforall.cn
全栈程序员站长
2022/06/30
2.7K0
js中的ajax和jquery中的ajax学习笔记
jQuery ajax - ajax()方法
什么是 AJAX? AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML)。
江一铭
2022/06/17
9.4K0
Angularjs和jQuery的ajax的请求区别
  Angularjs和jQuery的ajax的请求是不同的。在jquery中,官方文档解释contentType默认是application/x-www-form-urlencoded; charset=UTF-8
csxiaoyao
2019/02/18
1.5K0

相似问题

使用jquery ajax发布数组

31

无法通过jQuery ajax发布Javascript数组

48

使用jQuery/AJAX发布和验证PHP数组

20

Ajax和JQuery在不刷新表单的情况下发布表单

33

如何在不转义括号的情况下使用jQuery和.ajax方法发送数组?

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文