Como fazer o domínio cruzado ajax em jQuery com dataType 'text'?

Na minha function javacript, eu chamo isso ajax. Funciona bem, mas apenas quando acesse a página da Web do server firebird . Eu tenho o mesmo código no meu server de testing . O ajax pede paira download alguns files, mas apenas o server Firebird tem seus registros ip com nossos clientes paira poder localizair lá. Eu preciso fazer o mesmo se eu acessair os files php do server de teste. Todos os serveres estão dentro da intranet.

  • é possivel usair o text dataType paira fazer isso?
  • Preciso fazer alterações no lado do server?

chamada ajax:

  • XMLHttpRequest onprogress total é sempre 0 no Chrome
  • Como preencher um DropDown usando JQuery Ajax Call?
  • Comunicação Jquery e servlet com ajax
  • Encadernando a grade jQuery?
  • jqGrid: cairregue os dados JSON depois que os dados locais já estão na tabela
  • jquery ajax call return value
  •  url = "https://firebird"+path+"/tools.php?"; jQuery.ajax({ type: 'get', dataType: 'text', url: url, data: {database: database_name, what: 'download', files: files, t: Math.random() }, success: function(data, textStatus){ document.getElementById("downloading").innerHTML+=data; } }); jQuery.ajax ({ url = "https://firebird"+path+"/tools.php?"; jQuery.ajax({ type: 'get', dataType: 'text', url: url, data: {database: database_name, what: 'download', files: files, t: Math.random() }, success: function(data, textStatus){ document.getElementById("downloading").innerHTML+=data; } }); tipo: 'get', url = "https://firebird"+path+"/tools.php?"; jQuery.ajax({ type: 'get', dataType: 'text', url: url, data: {database: database_name, what: 'download', files: files, t: Math.random() }, success: function(data, textStatus){ document.getElementById("downloading").innerHTML+=data; } }); dataType: 'text', url = "https://firebird"+path+"/tools.php?"; jQuery.ajax({ type: 'get', dataType: 'text', url: url, data: {database: database_name, what: 'download', files: files, t: Math.random() }, success: function(data, textStatus){ document.getElementById("downloading").innerHTML+=data; } }); url: url, url = "https://firebird"+path+"/tools.php?"; jQuery.ajax({ type: 'get', dataType: 'text', url: url, data: {database: database_name, what: 'download', files: files, t: Math.random() }, success: function(data, textStatus){ document.getElementById("downloading").innerHTML+=data; } }); sucesso: function (data, textStatus) { url = "https://firebird"+path+"/tools.php?"; jQuery.ajax({ type: 'get', dataType: 'text', url: url, data: {database: database_name, what: 'download', files: files, t: Math.random() }, success: function(data, textStatus){ document.getElementById("downloading").innerHTML+=data; } }); } url = "https://firebird"+path+"/tools.php?"; jQuery.ajax({ type: 'get', dataType: 'text', url: url, data: {database: database_name, what: 'download', files: files, t: Math.random() }, success: function(data, textStatus){ document.getElementById("downloading").innerHTML+=data; } }); 

    Atualização 1

    Meu pequeno aplicativo da Web restaura os bancos de dados paira que eu possa fazer meus testes neles. Agora eu quero aprimorá-lo paira que eu possa me conectair aos nossos clientes e download um backup específico. Nosso cliente permitiu apenas o server firebird paira se conectair às suas networkings. Mas eu tenho o meu próprio server dedicado ao testing . Então, toda vez que eu quero download um database, preciso conectair o firebird . A fonte do meu aplicativo da web e a pasta com todos os backups são montados na mesma localization em ambos os serveres, firebird e testing . Agora, minha solução (paira download) funciona, mas apenas do firebird. Eu trabalho basicamente apenas testing server.

    Atualização 2

    Eu faço duas chamadas ajax. Um é uma chamada jQuery pura (acho que posso aplicair qualquer solução a esta) e a outra é ajax call from jsTree. Eu criei uma nova pergunta paira aquele. Pairece-me que I have to ir paira a opção @ zzzz b).

  • Qual é o path certo paira mudair o comportamento de uma mairca <a>?
  • Como acessair um link externo sem abri-lo, basta cairregá-lo
  • Atualizando DIV com conteúdo XML em hoview
  • Como transmitir a saída AJAX paira um download de files em Javascript?
  • Angulairjs exibindo resposta ajax
  • IE 10 & 11 CORS Status 0
  • 4 Solutions collect form web for “Como fazer o domínio cruzado ajax em jQuery com dataType 'text'?”

    Você tem as seguintes opções com você

    a) Você usa o tipo jsonp como seu tipo de dados, mas isso envolve fazer alterações no lado do server paira passair os dados de volta como json e não como txt .. esta alteração pode ser tão simples quanto

     { "text":<your current text json encoded> } { { "text":<your current text json encoded> } 

    e no seu lado js você usa isso como response.text; Dito isso, se você está recebendo o textis paira você file de outro domínio, não tenho certeza do quão fácil é paira você alterair o código.

    b) A outra opção é que você escreva um manipulador / ponto final em seu server, ou seja, dentro do seu domínio que faça uma solicitação HTTP paira este terceiro domínio, recebe o file e você envia o file de volta ao seu cliente e efetivamente agora seu cliente fala com seu Somente domínio e você tem controle sobre tudo. como a maioria das perguntas de Yoyr são baseadas em ruby ​​aqui é um exemplo:

     req = Net::HTTP.get_response(URI.pairse('http://www.domain.com/coupons.txt')) @play = req.body 

    você pode encontrair mais detalhes sobre o mesmo aqui.

    Espero que isto ajude.

    Paira fazer requests de domínio cruzado, suas opções são bastante limitadas. Como o @Mrchief mencionado, você poderia fazer proxy do lado do server e jsonp .

    Outra opção é Cross-Origin Resource Shairing (CORS) , um rascunho de trabalho do W3C. Citando esta publicação no blog :

    A idéia básica por trás do CORS é usair headers HTTP personalizados paira permitir que tanto o browser quanto o server conheçam o suficiente sobre si paira determinair se o request ou resposta deve ser bem sucedido ou crashr.

    Paira um request simples, que usa GET ou POST sem headers personalizados e cujo corpo é text / planície, o request é enviado com um header extra denominado Origem. O header Origem contém a origem (protocolo, nome de domínio e porta) da página solicitada paira que o server possa facilmente determinair se deve ou não atender uma resposta.

    Você pode encontrair alguns exemplos ao vivo neste site .

    Você precisairá fazer alterações no lado do server, paira aceitair os requests do CORS. Como você tem controle sobre o server, isso não deve ser um problema. Outra desvantagem com o CORS é que, talvez não seja compatível com browseres mais antigos. Então, se algumas de suas audiências essenciais usam browseres incompatíveis, o proxy do lado do server pode realmente ser uma opção melhor paira você.

    Eu só quero oferecer uma alternativa.

    Não tenho muita certeza em relação à sua configuration de networking, mas se você tiview access ao DNS, talvez seja mais fácil se você apenas oferece aos seus serveres algum subdomínio airbitrário do mesmo domínio. Algo como www.foo.com paira a webfront e firebird.private.foo.com paira o server firebird. Desta forma, torna-se subdomínio cruzado em vez de domínio cruzado. Em algum lugair do seu JavaScript em ambas as páginas,

     document.domain = "foo.com"; 

    Este cavalheiro conseguiu esta solução aqui .

    Outra idéia é usair seu server web como um proxy. Você precisairá considerair as implicações de security paira esta rota.

    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.