Ajax请求不同的主机 [英] ajax request to different host

查看:153
本文介绍了Ajax请求不同的主机的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在我的网页下面的JavaScript:

  VAR XHR =新XMLHtt prequest();
xhr.open(GET,http://www.google.com,真正的);
xhr.onreadystatechange =功能(){
  如果(xhr.readyState == 4){
    警报('RESP收到,状态:+ xhr.status +,responseText的:'+ xhr.responseText);
  }
};
xhr.send(空);
 

这执行和完成W / A的readyState 4,0状态,空和responseXML-。我知道,它实际上是将请求发送B / CI试图发送XHR到服务器我的机器上,并且服务器实际上确实回应。为什么我没有得到的responseText的什么?它有事可做瓦特/事实XHR会到不同的服务器?

当我打开JS调试器,键入XHR检查我得到这个对象:

  

XMLHtt prequest
  DONE:4
  HEADERS_RECEIVED:2
  LOADING:3
  OPENED:1
  UNSENT:0
  中止:函数abort(){
  的addEventListener:函数调用addEventListener(){
  则dispatchEvent:功能则dispatchEvent(){
  getAllResponseHeaders:功能getAllResponseHeaders(){
  getResponseHeader:功能getResponseHeader(){
  onabort:空
  onError的:空
  onload事件:空
  onloadstart:空
  onprogress:空
  的onreadystatechange:函数(){
  开放式:开放式的功能(){
  overrideMimeType:功能overrideMimeType(){
  readyState的:4
  removeEventListener:功能removeEventListener(){
  responseText的:
  responseXML的:空
  发送:函数的send(){
  setRequestHeader:功能setRequestHeader(){
  状态:0
  状态文本:
  上传:XMLHtt prequestUpload
  withCredentials:假

解决方案
  

它有事情做瓦特/   事实XHR是要一   不同的服务器?

是的,你无法通过AJAX请求发送到另一台服务器上。然而,您可以发送从服务器端的您的要求。因此,你需要实现以下工作流程: 您的网页 - >你的服务器 - >第三方服务器 - >你的服务器 - >您的网页,其中 - >表示发送数据

i have the following javascript in my webpage:

var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://www.google.com', true);
xhr.onreadystatechange = function() {
  if (xhr.readyState == 4) {
    alert('resp received, status:' + xhr.status + ', responseText: ' + xhr.responseText);
  }                                                                       
};                                                                        
xhr.send(null);

this executes and finishes w/ a readyState of 4, status of 0, and empty responseText and responseXML. i know that it is actually sending the request b/c i tried sending the xhr to a server on my machine, and the server does in fact respond. why am i not getting anything in the responseText? does it have something to do w/ the fact that the xhr is going to a different server?

when i open up the js debugger and type 'xhr' to inspect the object i get this:

XMLHttpRequest
DONE: 4
HEADERS_RECEIVED: 2
LOADING: 3
OPENED: 1
UNSENT: 0
abort: function abort() {
addEventListener: function addEventListener() {
dispatchEvent: function dispatchEvent() {
getAllResponseHeaders: function getAllResponseHeaders() {
getResponseHeader: function getResponseHeader() {
onabort: null
onerror: null
onload: null
onloadstart: null
onprogress: null
onreadystatechange: function () {
open: function open() {
overrideMimeType: function overrideMimeType() {
readyState: 4
removeEventListener: function removeEventListener() {
responseText: ""
responseXML: null
send: function send() {
setRequestHeader: function setRequestHeader() {
status: 0
statusText: ""
upload: XMLHttpRequestUpload
withCredentials: false

解决方案

does it have something to do w/ the fact that the xhr is going to a different server?

Yep, you cannot send requests to another servers via AJAX. Whereas, you can send your requests from the server-side. Thus you'll need to implement following workflow: Your page -> Your server -> Third party server -> Your server -> Your page , where "->" means sending data.

这篇关于Ajax请求不同的主机的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆