为什么以下代码基于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中).
我在NodeJS上运行SocketIO,我不太关心广泛的浏览器支持,因为这是我的宠物项目,我想利用新技术的所有功能来简化开发.我关心的是如何将大量的JSON数据从服务器发送到客户端并返回.嗯,这些数量不像视频或图像二进制数据那么大,我想每个请求不超过几百千字节.
我看到的两个场景是:
我在Meteor.js中看到了第一个案例,所以我想知道它的原因.请分享您的意见.
以下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之间的新随机值?
所以我很好奇在中止异步javascript请求时发生的实际底层行为.这个问题有一些相关的信息,但我还没有找到任何全面的信息.
我的假设一直是,中止请求会导致浏览器关闭连接并完全停止处理,从而导致服务器执行相同操作(如果已设置).但我想,在这里我可能没有想到特定于浏览器的怪癖或边缘情况.
我的理解如下,我希望有人可以在必要时纠正它,这对其他人来说是一个很好的参考.
ignore_user_abort()已被调用.因此,关闭XHR连接也可以节省服务器功耗.我正在尝试使用JavaScript制作XHR,但我无法让它正常工作.
当我在Chrome开发者工具的"网络"标签中看到正确的请求时,我看到他们有一个"表单数据"部分,其中列出了随请求一起发送的所有信息,如下所示:

现在,我已经尝试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)
但我得到了这个"查询字符串参数"而不是"表单数据":

我也试过这个:
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)
但我得到另一个"请求有效负载"而不是"表单数据":

如何发送我XMLHttpRequest的信息以获得与FIRST图像中显示的相同的结果?
我正在努力解决这个问题,因为我正在实施跨站点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)
任何的想法 ?
谢谢.
使用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) 好吧,我知道这是一个坏主意,不应该这样做,但为了这个问题,请假设没有其他方法 - 我得到的 API 端点需要以空对象作为主体的 GET 请求。
有没有办法从浏览器执行异步请求?我正在使用在幕后axios使用的库, MDN说当 HTTP 方法是 时会擦除主体。我尝试使用本机,但它在浏览器中给我这个错误:
XMLHttpRequestsendGETfetchTypeError: Failed to execute 'fetch' on 'Window': Request with GET/HEAD method cannot have body.
有什么办法可以做到吗?
我已经在 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
我正在开发一个项目,该项目的前端内置于 React 中,后端内置于 Spring 中,但我似乎无法使用 axios 连接这两个项目。
\n请记住,后端工作正常(而且我不太擅长反应)。
\n这是我在控制台收到的错误:
\nAxiosError\xc2\xa0{消息:\'网络错误\',名称:\'AxiosError\',代码:\'ERR_NETWORK\',配置:{\xe2\x80\xa6},请求:XMLHttpRequest,\xc2\xa0 \xe2\x80\xa6}
\n代码:“ERR_NETWORK”
\n配置:{过渡:{\xe2\x80\xa6},transformRequest:数组(1),transformResponse:数组(1),超时:0,适配器:\xc6\x92,\xc2\xa0\xe2\x80\xa6}
\n消息:“网络错误”
\n名称:“Axios错误”
\n请求:XMLHttpRequest\xc2\xa0{数据:未定义,onreadystatechange:null,readyState:4,超时:0,withCredentials:false,\xc2\xa0\xe2\x80\xa6}
\n响应:XMLHttpRequest\xc2\xa0{数据:未定义,onreadystatechange:null,readyState:4,超时:0,withCredentials:false,\xc2\xa0\xe2\x80\xa6}
\n[[原型]]:错误
\n这是我的 api.js:
\nimport axios from \'axios\';\n\nconst api = axios.create({\n baseURL: "https://localhost:8080"\n});\n\nexport default api;\nRun Code Online (Sandbox Code Playgroud)\n这是我的 App.js:
\nimport \'./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) xmlhttprequest ×10
javascript ×6
ajax ×2
axios ×2
angular ×1
asp.net ×1
asp.net-core ×1
aws-amplify ×1
c# ×1
cors ×1
fetch-api ×1
form-data ×1
get ×1
heroku ×1
internals ×1
node.js ×1
reactjs ×1
socket.io ×1
ssl ×1
typescript ×1
vba ×1
websocket ×1