标签: xmlhttprequest

MSXML2.XMLHTTP发送方法与早期绑定一起使用,后期绑定失败

以下代码有效.但是,如果我注释掉该行Dim objRequest As MSXML2.XMLHTTP并取消注释该行,Dim objRequest As Object则会失败并显示错误消息:

参数不正确

为什么,以及我可以做些什么(如果有的话)?

Public Function GetSessionId(strApiId, strUserName, strPassword) As String

    Dim strPostData As String

    Dim objRequest As MSXML2.XMLHTTP
    'Dim objRequest As Object '

    strPostData = "api_id=" & strApiId & "&user=" & strUserName & "&password=" & strPassword

    Set objRequest = New MSXML2.XMLHTTP
    With objRequest
        .Open "POST", "https://api.clickatell.com/http/auth", False
        .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        .send strPostData
        GetSessionId = .responseText
    End With

End Function
Run Code Online (Sandbox Code Playgroud)

Corey,是的,我知道我必须这样做才能使我的代码在没有引用MSXML类型库的情况下工作.这不是问题所在.Dim objRequest As Object无论我是否使用,代码在使用时都会失败

Set objRequest = NEW MSXML2.XMLHTTP …

vba msxml http xmlhttprequest

8
推荐指数
1
解决办法
5万
查看次数

是否可以在XMLHTTPRequest中使用Digest-Authentication?

我有一个简单的问题:是否可以在XMLHTTPRequest中使用Digest-Authentication?

如果答案是否定的,那么技术原因是什么?或者如果有可能 - 我该怎么做?

非常感谢...到目前为止谷歌没有好的答案: - /

编辑:

谢谢你的回答.在收到nonce后,修改标头以匹配摘要认证方案似乎是一种解决方案.

但我真正想要的是我可以改变我当前的调用:xmlhttp.open("GET",url,false,用户名,密码); 某事 像那个xmlhttp.open("GET",url,false,用户名,密码,"DIGEST");

这也是我最初的问题的一部分:为什么open方法不提供做出摘要请求的选项?

也许有js-lib可以推荐让我这样做 - 正如你想象的那样我真的不想将一个简单的xmlhttp.open更改为多个请求并首先得到一个nonce.

javascript http xmlhttprequest web

8
推荐指数
2
解决办法
1万
查看次数

使用xmlhttp的经典ASP页面可以发出JSON请求吗?

我完全迷失了.我试图从使用vbscript的经典asp页面发布到远程服务器上的API.我的代码:

set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP") 
xmlhttp.open "POST", vURL, false 
xmlhttp.setRequestHeader "Content-type","application/json"
xmlhttp.setRequestHeader "Accept","application/json"
xmlhttp.send "email=asdf@hotmail.com&firstname=joe&lastname=smith"
vAnswer = xmlhttp.responseText  
Run Code Online (Sandbox Code Playgroud)

我收到的回复是请求不是预期的格式.技术支持告诉我,API期望在帖子正文中使用JSON.我可以从服务器端asp执行此操作吗?

json xmlhttprequest asp-classic

8
推荐指数
2
解决办法
2万
查看次数

如何使用XMLHttpRequest将数组发送到服务器

据我所知使用ajax你可以发送数据到服务器,但我很困惑发送一个数组发布使用XMLHttpRequest不是任何库,如jQuery.我的问题是,是否有可能发送数组php使用XMLHttpRequest以及如何jQuery将数组发送到php,我的意思是jQuery做任何额外的工作来将数组发送到服务器(php $ _POST)?

ajax jquery xmlhttprequest

8
推荐指数
1
解决办法
2万
查看次数

在url的请求参数中传递"#"哈希符号在Firefox中不起作用

我正在使用AJAX进行Struts动作,一切都很好,但是Firefox有问题,当我将URL中的参数作为请求参数传递时,如果该参数最后包含hash(#)符号,则firefox会删除所有内容在该符号之后,将该参数发送到没有它的操作.

例如,如果我在Firefox中传递test123#abcd,那么我在动作类中只得到test123而不是test123#abcd,这对我的要求是不可取的.对于IE它是完美的工作.我有什么方法可以提取完整参数,包括Firefox中的#符号.

如果我还需要发布java动作代码,请告诉我,谢谢.

JS片段

var valuePassword=test123#abcd;

    var url = "/test/ChangePwdAjax.do?newPass="+valuePassword;
            var xmlHTTP = getXMLHTTPRequest();
Run Code Online (Sandbox Code Playgroud)

javascript ajax firefox xmlhttprequest

8
推荐指数
1
解决办法
1万
查看次数

如何在未定义FormData时在Web Workers中上载文件

$_FILES当我通过Web Worker上传时,如何在PHP中检索?当我尝试使用时FormData,我收到以下错误:

错误:未定义FormData

这是我的代码:

function uploadFile(blobFile, fileName, filePart, totalChunks) {
    //if I try to put this
    //var formData = new FormData(); //it does not work
    var xhr = new XMLHttpRequest();                
    xhr.open("POST", "upload.php"+"?"+"file="+fileName + filePart, true);
    xhr.onload = function(e) {};
    xhr.send(blobFile);
}   
Run Code Online (Sandbox Code Playgroud)

所以在upload.php中,我应该如何获取tmp路径$_FILES?为了以防万一,我还将显示引用Web worker的页面:

<form id="fileuploader" enctype="multipart/form-data" method="post" action="upload.php">
    <label for="fileToUpload">Select Files to Upload</label><br />
    <input type="file" name="fileToUpload[]" multiple="" id="fileToUpload" onchange="fileList();"/><br />
    <input type="button" onclick="sendRequest();" value="Upload" />
    <!-- a place for File Listing -->
    <div id="fileList"></div> …
Run Code Online (Sandbox Code Playgroud)

javascript php html5 xmlhttprequest web-worker

8
推荐指数
1
解决办法
3541
查看次数

如何使用VBScript通过HTTP API发布JSON数据?

尝试将JSON POST请求发送到HTTP API(PushBullet).但是在代码中面临错误.任何帮助赞赏.参考文件发送推送通知

Dim objXmlHttpMain , URL

strJSONToSend = {"type": "note", "title": "Alert", "body": "Lorem Ipsum Lorem Ipsum Lorem Ipsum."}

URL="https://api.pushbullet.com/v2/pushes" 
Set objXmlHttpMain = CreateObject("Msxml2.ServerXMLHTTP") 
on error resume next 
objXmlHttpMain.open "POST",URL, False 
objXmlHttpMain.setRequestHeader "Authorization", "Bearer <api secret id>"
objXmlHttpMain.setRequestHeader "Content-Type", "application/json"


objXmlHttpMain.send strJSONToSend

set objJSONDoc = nothing 
set objResult = nothing
Run Code Online (Sandbox Code Playgroud)

vbscript json xmlhttprequest

8
推荐指数
1
解决办法
2万
查看次数

收到响应后,XMLHttpRequest对象是否关闭?

我正在尝试使用XMLHttpRequest对象连接到服务器以在不同时间发布数据.我创建一个对象并"连接"到服务器,如下所示:

var xhr = new XMLHttpRequest();
xhr.open("post", location, true);
xhr.send(); //Is this send call needed to open the connection?
Run Code Online (Sandbox Code Playgroud)

在稍后的时间点,我称之为:

xhr.send("Something to send");
Run Code Online (Sandbox Code Playgroud)

但是,查看开发人员控制台,似乎只有初始请求通过(并成功响应).第二个请求似乎没有发送.我试图缩小可能存在的问题,所以我想:一旦收到回复,就可以关闭连接; 为什么要保持开放?所以,我的问题是:XMLHttpRequest对象连接收到响应后是否关闭?如果是这样,模拟连续打开连接的最佳方法是什么(不断重新连接?)?

javascript ajax xmlhttprequest

8
推荐指数
1
解决办法
2万
查看次数

setInterval()是一个异步函数吗?

XMLHttpRequest每秒都在服务器上,服务器将响应新消息.要调用XMLHttpRequest每一秒我使用a中的setInterval()函数SharedWorker.

但是,由于我每秒都在提出请求,我想知道是否setInterval()异步?

例如,如果一个XMLHttpRequest请求花了3秒钟来完成"由于延迟",我是否会同时setInterval()发出3个请求,或者等到第一个请求完成之后再等待1秒并发送另一个请求?

这是我的代码

function checkQueue(url)
{
  var xhr = new XMLHttpRequest();
  xhr.addEventListener("load", reqListener);
  xhr.open('GET', url, true);
  xhr.send();
}


function reqListener ()
{
    var queue = JSON.parse(this.responseText);
    notifyAllPorts(queue);
    console.log(this.responseText);
}


setInterval(
    function() {
        checkQueue('/add-ons/icws/push.php') 
    }
, 1000);
Run Code Online (Sandbox Code Playgroud)

javascript jquery asynchronous xmlhttprequest setinterval

8
推荐指数
2
解决办法
2万
查看次数

XMLHttpRequest()&net :: ERR_NAME_NOT_RESOLVED

我正在编写一个javascript应用程序,它发出远程服务器的HTTP请求.用户将输入主机名.

如果他们输入无法解析的DNS名称,我想提供诊断消息.这是当前的代码:

var req, t, url;
url = 'http://definitelydoesntexist0x314159.com';
req = new XMLHttpRequest();
req.open('GET', url, true);
req.onreadystatechange = function() {
  if (req.readyState == 4) {
    t = req.statusText;
  }
};
req.send();
Run Code Online (Sandbox Code Playgroud)

在onreadystatechange函数中,req的状态为= 0,响应为"",因此没有太多迹象表明出现了什么问题.然而,控制台显示"无法加载资源:net :: ERR_NAME_NOT_RESOLVED",因此浏览器(Chrome)能够弄清楚发生了什么.

如何获得ERR_NAME_NOT_RESOLVED的指示?

更新:我回到这个问题,使用的策略是任何不是'超时'的响应意味着名称已解决,主机回答等.

我原来问题的答案似乎是:浏览器本身(在这种情况下是Chrome)检测到无法解析并在控制台中显示它,但XMLHttpRequest API不够丰富,无法指明原因.因此,可怜的Javascript程序员会将超时作为一种解决方法.

我还删除了CORS标题,因为正确指出的评论者之一没有价值.

javascript dns xmlhttprequest

8
推荐指数
1
解决办法
9074
查看次数