使用FormData 向服务器发送数据,后台asp程序接收不到,请教原因!!!谢谢! 代码如下:

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用FormData 向服务器发送数据,后台asp程序接收不到,请教原因!!!谢谢! 代码如下:相关的知识,希望对你有一定的参考价值。

主程序:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<p><span id="A1"></span></p>
<button onclick="sendformdata()">发送数据</button>
<script type="text/javascript">
var xmlhttp;
function sendformdata()

if (window.XMLHttpRequest)

xmlhttp=new XMLHttpRequest();

else if (window.ActiveXObject)

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

if (xmlhttp!=null)

var formData = new FormData();
formData.append('username','lee');
formData.append('usercity','beijing');
xmlhttp.onreadystatechange=state_Change;
xmlhttp.open('POST','showinfo.asp');
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlhttp.send(formData);

else

alert("您的浏览器不支持 XMLHTTP.");


function state_Change()

if (xmlhttp.readyState==4) // 服务器已经响应

if (xmlhttp.status==200) // 请求成功

// 显示服务器的响应数据
document.getElementById('A1').innerHTML=xmlhttp.responseText;

else

alert("接收XML数据时出现问题:" + xmlhttp.statusText);



</script>
</body>
</html>

后台ASP程序: showinfo.asp:

<%@LANGUAGE="VBSCRIPT" codepage="65001"%>

<%
username=request.form("username")
usercity=request.form("usercity")
response.write "名字:" & username&"<br>"
response.write "城市:" & username&"<br>"

%>

执行结果只有: 名字:
城市:
具体传的数据Lee、BeiJing 都没有,说明FormData 对象没把数据传给后台的showinfo.asp。

请教以上代码 哪里有问题?

谢谢!

参考技术A 1、
<form name="form1" method="post" action="search2.asp">

search.asp代码;
有问题吧!!!一个search2.asp一个却是search.asp!
2、
if resquest.form(key) then
sql="SELECT * From Book_Info where Auther ='"&resquest.form()&"'"
if resquest.form(key) then
这句应该为if resquest("key")<>"" then
resquest.form()却没给参数。
我晕!认真点!追问

与我的问题无关那

在后台向服务器发送 BLE 设备数据

【中文标题】在后台向服务器发送 BLE 设备数据【英文标题】:Sending BLE device data to server in background 【发布时间】:2019-04-07 18:26:31 【问题描述】:

我开发了一个从 BLE 设备读取数据并将此数据发送到 MQTT 代理(服务器)的应用程序。但是当应用程序进入后台时,数据发送在 3 分钟后停止(我使用后台任务)。我怎么能增加这个时间。或者也许有一个官方机制,Apple 会在 App Store 的确认步骤中推广并且不会拒绝,用于从 BLE 读取数据并将这些数据发送到后台服务器,不受时间限制?

我的后台任务:

AYBackgroundTask.h

@interface AYBackgroundTask : NSObject

@property (assign) UIBackgroundTaskIdentifier identifier;
@property (strong, nonatomic) UIApplication *application;

+ (void)run:(void(^)(void))handler;

- (void)begin;
- (void)end;

@end

AYBackgroundTask.m

@implementation AYBackgroundTask

+ (void)run:(void(^)(void))handler 
  AYBackgroundTask *task = [[AYBackgroundTask alloc] init];
  [task begin];
  handler();


- (void)begin 
  self.identifier = [self.applicationn beginBackgroundTaskWithExpirationHandler:^
    [self end];
  ];


- (void)end 
  if (self.identifier != UIBackgroundTaskInvalid) 
    [self.application.application endBackgroundTask:self.identifier];
  
  self.identifier = UIBackgroundTaskInvalid;


@end

这里有谁遇到过这个问题? 最好的祝福, 安东。

【问题讨论】:

【参考方案1】:

总而言之,beginBackgroundTaskWithExpirationHandler 不起作用 - 使用 Core Bluetooth Background Processing for iOS Apps。仔细阅读它,因为如果你错过了一点,你可能不会出错 - 它会默默地失败。

您需要首先将其添加到您的Info.plist

<key>UIBackgroundModes</key>
<array>
    <string>bluetooth-central</string>
</array>

特别注意标题为Use Background Execution Modes Wisely的部分,具体如下:

在被唤醒后,应用有大约 10 秒 的时间来完成一项任务。理想情况下,它应该尽快完成任务并允许自己再次挂起。在后台花费过多时间执行的应用程序可能会被系统限制或终止。

虽然 MQTT 很棒,但您可能需要切换到 NSURLSessionUploadTask,因为上传是在操作系统的其他地方异步进行的,因此时间不会计入您的 10 秒。

【讨论】:

但是如果我需要以特定的时间间隔来做,它支持这种机制吗?据我了解,设备必须说:“嘿,你有一些心率。你想读这个吗?” (例如)。 如您所说,该设备会为您提供您随后处理的数据。我不认为你可以在特定的时间间隔被调用,除非你控制设备并且可以添加一个“ping”特性。 是否可以在获取方法“performFetchWithCompletionHandler”中执行此操作?它有一个间隔。这不是一个严格的间隔,但是我可以用这种方法进行扫描、连接、写入、读取和发送到服务器吗?

以上是关于使用FormData 向服务器发送数据,后台asp程序接收不到,请教原因!!!谢谢! 代码如下:的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 fetch 将 FormData 从 javascript 发送到 ASP.NET Core 2.1 Web API

使用 jQuery.ajax 发送 multipart/formdata

使用 jQuery.ajax 发送 multipart/formdata

前端向后端发送请求(FormData)

向 API 请求 formData,上传图片时在 axios 中出现“网络错误”

jQuery中的ajaxjquery中ajax全局事件load实现页面无刷新局部加载ajax跨域请求jsonp利用formData对象向服务端异步发送二进制数据