标签: xmlhttprequest

XMLHttpRequest从远程主机获取HTTP响应

为什么以下代码基于Mozilla示例不起作用?尝试使用Firefox 3.5.7和Chrome.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<body>
</body>
  <script>
    var req = new XMLHttpRequest();
    req.open('GET', 'http://www.mozilla.org/', false); 
    req.send();
    if(req.status == 200) {
        alert(req.responseText);
    }
  </script>  
</html>
Run Code Online (Sandbox Code Playgroud)

请浏览器从本地磁盘中提取html(文件:/// C:/Users/Maxim%20Veksler/Desktop/XMLHTTP.html)

在Firefox上它会出现以下错误:

uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIXMLHttpRequest.send]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: file:///C:/Users/Maxim%20Veksler/Desktop/XMLHTTP.html :: <TOP_LEVEL> :: line 10" data: no]
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我想向远程主机提交请求并提醒结果(稍后添加到div中).

javascript xmlhttprequest

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

WebSockets与XHR之间的大量数据

我在NodeJS上运行SocketIO,我不太关心广泛的浏览器支持,因为这是我的宠物项目,我想利用新技术的所有功能来简化开发.我关心的是如何将大量的JSON数据从服务器发送到客户端并返回.嗯,这些数量不像视频或图像二进制数据那么大,我想每个请求不超过几百千字节.

我看到的两个场景是:

  1. 通过WebSockets从服务器向客户端发送应该获取某些数据的通知.然后客户端代码向服务器运行常规XHR请求,并通过XHR获取一些数据.
  2. 通过WebSockets将整个数据集从服务器发送到客户端.在这种情况下,我不需要运行任何其他请求 - 我只是通过WebSockets获取所有数据.

我在Meteor.js中看到了第一个案例,所以我想知道它的原因.请分享您的意见.

javascript xmlhttprequest websocket node.js socket.io

10
推荐指数
1
解决办法
8970
查看次数

Xmlhttp请求引发Access Denied错误

以下Excel宏(它正在向此网页发出xmlhttp请求以在第二阶段检索某些值)在VBA中正常工作,直到一段时间之前:

Sub WebReq()

Link = "http://it.finance.yahoo.com/q?s=^FCHI&ql=10" & str(rnd())
Set htm = CreateObject("htmlFile")

Set RequestWeb = CreateObject("msxml2.xmlhttp")
With RequestWeb
    .Open "GET", "" & Link & "", False
    .send
    htm.body.innerhtml = .responsetext
End With

End Sub
Run Code Online (Sandbox Code Playgroud)

现在,相反,在方法的调用:

    .send
Run Code Online (Sandbox Code Playgroud)

对象msxml2.xmlhttp引发以下错误:

Run-time error '-2147024891 (80070005)'
Access is denied. 
Run Code Online (Sandbox Code Playgroud)

我一直在网上看,但所有类似的线程都没有回答.任何人都可以解释一下这个错误意味着什么,如果有什么方法我可以解决它甚至只是解决它?

注意:已添加变量"链接"末尾的随机字符串以强制重新加载页面,因为脚本正在检索实时值,因此每次都应加载它.

附加信息:在寻找解决方案时,我现在注意到链接的随机部分即使在我结束运行并再次重新启动时总是产生相同的值:

Link = http://it.finance.yahoo.com/q?s=^FCHI&ql=10 .7055475
Run Code Online (Sandbox Code Playgroud)

为什么会这样?rnd()每次通话都不应该产生0到1之间的新随机值?

vba xmlhttprequest

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

中止XMLHttpRequest的内部(客户端和服务器)

所以我很好奇在中止异步javascript请求时发生的实际底层行为.这个问题有一些相关的信息,但我还没有找到任何全面的信息.

我的假设一直是,中止请求会导致浏览器关闭连接并完全停止处理,从而导致服务器执行相同操作(如果已设置).但我想,在这里我可能没有想到特定于浏览器的怪癖或边缘情况.

我的理解如下,我希望有人可以在必要时纠正它,这对其他人来说是一个很好的参考.

  • 中止XHR请求客户端会导致浏览器在内部关闭套接字并停止处理它.我希望这种行为而不是简单地忽略进来的数据并浪费内存.我不打算在IE上打赌.
  • 服务器上的中止请求将取决于在那里运行的内容:
    • 我知道使用PHP时,默认行为是在客户端套接字关闭时停止处理,除非ignore_user_abort()已被调用.因此,关闭XHR连接也可以节省服务器功耗.
    • 我真的很想知道如何在node.js中处理这个问题,我假设在那里需要一些手工工作.
    • 我真的不知道其他服务器语言/框架以及它们的行为方式,但如果有人想提供具体内容,我很乐意在这里添加它们.

javascript ajax xmlhttprequest internals

10
推荐指数
1
解决办法
1329
查看次数

使用FormData发送XMLHttpRequest

我正在尝试使用JavaScript制作XHR,但我无法让它正常工作.

当我在Chrome开发者工具的"网络"标签中看到正确的请求时,我看到他们有一个"表单数据"部分,其中列出了随请求一起发送的所有信息,如下所示:

FORMDATA

现在,我已经尝试XMLHttpRequest以我知道的任何方式制作我,但我无法得到那个结果.

我试过这个:

var xhr = new XMLHttpRequest(),
    form_data = "data%5Btumblelog%5D=drunknight&data%5Bsource%5D=FOLLOW_SOURCE_REBLOG";
    // this is uri encoded: %5b = [ and %5D = ]

xhr.open('POST','https://www.somesite.com/page?' + form_data, false);
xhr.send();
Run Code Online (Sandbox Code Playgroud)

我得到了这个"查询字符串参数"而不是"表单数据":

querystringparameters

我也试过这个:

var xhr = new XMLHttpRequest(),
    formData = new FormData();

formData.append("data[tumblelog]", "drunknight");
formData.append("data[source]", "FOLLOW_SOURCE_REBLOG");
xhr.open('POST','https://www.somesite.com/page', false);
xhr.send(formData);
Run Code Online (Sandbox Code Playgroud)

我得到了"请求有效负载"而不是"表单数据":

有效载荷

最后,我试过这个:

var xhr = new XMLHttpRequest(),
    formData = {
        "data[tumblelog]": "drunknight",
        "data[source]": "FOLLOW_SOURCE_REBLOG"
    };

xhr.open('POST','https://www.somesite.com/page', false);
xhr.send(JSON.stringify(formData));
Run Code Online (Sandbox Code Playgroud)

我得到另一个"请求有效负载"而不是"表单数据":

payload2


现在,我的问题是:

如何发送我XMLHttpRequest的信息以获得与FIRST图像中显示的相同的结果?

javascript ajax xmlhttprequest form-data

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

Angular2:Access-Control-Allow-Headers不允许使用X-XSRF-TOKEN

我正在努力解决这个问题,因为我正在实施跨站点API调用.最糟糕的是它在我的本地环境中运行良好但是一旦在heroku上运行,它会因以下错误而失败:

XMLHttpRequest无法加载https://restcountries.eu/rest/v1/all.在预检响应中,Access-Control-Allow-Header不允许请求标头字段X-XSRF-TOKEN.

这是触发调用的函数:

  let observable = this._http
    .get(GEO_API_URL + query)
    .map(response => response.json())
    .do(val => {
      this.cache = val;
      observable = null;
    })
    .share();

  return observable;
Run Code Online (Sandbox Code Playgroud)

任何的想法 ?

谢谢.

xmlhttprequest heroku cors angular

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

使用XMLHttpRequest发布到ASP.Net Core WebAPI时出现错误415

使用WebAPI后端服务器处理新项目,我无法从实际网站发布到控制器,尽管Postman没有问题发布到控制器.我收到错误415,浏览器控制台记录:

HTTP415: UNSUPPORTED MEDIA TYPE - The server is refusing to service the request because the entity of the request is in a format not supported by the requested resource for the requested method.
(XHR)OPTIONS - http://localhost:5000/api/Users
Run Code Online (Sandbox Code Playgroud)

来自Kestrel的日志是

info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
      Request starting HTTP/1.1 OPTIONS http://localhost:5000/api/Users  0
Microsoft.AspNetCore.Hosting.Internal.WebHost:Information: Request starting HTTP/1.1 OPTIONS http://localhost:5000/api/Users  0
info: Microsoft.AspNetCore.Mvc.StatusCodeResult[1]
      Executing HttpStatusCodeResult, setting HTTP status code 415
Microsoft.AspNetCore.Mvc.StatusCodeResult:Information: Executing HttpStatusCodeResult, setting HTTP status code 415
info: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker[2]
      Executed action SchoolsChat.Controllers.UserContoller.Post (SchoolsChat) in 2.5323ms
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker:Information: Executed …
Run Code Online (Sandbox Code Playgroud)

c# asp.net xmlhttprequest typescript asp.net-core

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

来自浏览器的带有正文的异步 GET 请求

好吧,我知道这是一个坏主意,不应该这样做,但为了这个问题,请假设没有其他方法 - 我得到的 API 端点需要以空对象作为主体的 GET 请求。

有没有办法从浏览器执行异步请求?我正在使用在幕后axios使用的库, MDN说当 HTTP 方法是 时会擦除主体。我尝试使用本机,但它在浏览器中给我这个错误: XMLHttpRequestsendGETfetchTypeError: Failed to execute 'fetch' on 'Window': Request with GET/HEAD method cannot have body.

有什么办法可以做到吗?

javascript get xmlhttprequest fetch-api axios

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

从 AWS Amplify 部署的 HTTPS (SSL) 客户端向 HTTP 端点发出 API 请求

我已经在 AWS EC2 实例中部署了我的后端/API 服务器,该实例是在没有 SSL 的情况下加载的,并且 url 类似于“ http://ec2-67-ap-southeast-3.compute.amazonaws.com

我已经使用AWS AMPLIFY控制台部署了我的 React 前端/客户端。它会自动将SSL添加到生产分支 URL,URL 类似于https://branch.d3as6d542.amplifyapp.com

现在的问题是,我无法从客户端向我的服务器发出任何 API/HTTP 请求。并出现以下错误,

Mixed Content: The page at 'https://branch.d3as6d542.amplifyapp.com' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://ec2-67.ap-southeast-3.compute.amazonaws.com/api/profile’. This request has been blocked; the content must be served over HTTPS.
Run Code Online (Sandbox Code Playgroud)

我能够从我的客户端本地主机开发环境中进行这个 API 调用。但是由于 HTTP 未匹配,AWS AMPLIFY SERVER 出现错误。

我该如何解决这个问题,或者有什么方法可以删除自动添加的 AWS AMPLIFY 的 SSL?

ssl xmlhttprequest amazon-web-services mixed-content aws-amplify

10
推荐指数
2
解决办法
2797
查看次数

AxiosError {消息:'网络错误',名称:'AxiosError',代码:'ERR_NETWORK',配置:{...},请求:XMLHttpRequest,...}

我正在开发一个项目,该项目的前端内置于 React 中,后端内置于 Spring 中,但我似乎无法使用 axios 连接这两个项目。

\n

请记住,后端工作正常(而且我不太擅长反应)。

\n

这是我在控制台收到的错误:

\n
    \n
  1. AxiosError\xc2\xa0{消息:\'网络错误\',名称:\'AxiosError\',代码:\'ERR_NETWORK\',配置:{\xe2\x80\xa6},请求:XMLHttpRequest,\xc2\xa0 \xe2\x80\xa6}

    \n
      \n
    1. 代码:“ERR_NETWORK”

      \n
    2. \n
    3. 配置:{过渡:{\xe2\x80\xa6},transformRequest:数组(1),transformResponse:数组(1),超时:0,适配器:\xc6\x92,\xc2\xa0\xe2\x80\xa6}

      \n
    4. \n
    5. 消息:“网络错误”

      \n
    6. \n
    7. 名称:“Axios错误”

      \n
    8. \n
    9. 请求:XMLHttpRequest\xc2\xa0{数据:未定义,onreadystatechange:null,readyState:4,超时:0,withCredentials:false,\xc2\xa0\xe2\x80\xa6}

      \n
    10. \n
    11. 响应:XMLHttpRequest\xc2\xa0{数据:未定义,onreadystatechange:null,readyState:4,超时:0,withCredentials:false,\xc2\xa0\xe2\x80\xa6}

      \n
    12. \n
    13. [[原型]]:错误

      \n
    14. \n
    \n
  2. \n
\n

这是我的 api.js:

\n
import axios from \'axios\';\n\nconst api = axios.create({\n  baseURL: "https://localhost:8080"\n});\n\nexport default api;\n
Run Code Online (Sandbox Code Playgroud)\n

这是我的 App.js:

\n
import \'./App.css\';\nimport axios from "axios";\nimport {useEffect, useState} from \'react\'\nimport api from \'./api.js\';\n\nfunction App() …
Run Code Online (Sandbox Code Playgroud)

javascript xmlhttprequest reactjs axios

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