O que é solicitação de domínio cruzado?
Um entendimento simples é fazer uma solicitação a um arquivo de servidor que não está no mesmo nome de domínio. Vamos usar um exemplo prático para ilustrar isso. Por exemplo, o Baidu.com envia uma solicitação para cxyblog.com. Os dois nomes de domínio são diferentes. Então isso é domínio cruzado. Por razões de segurança, isso não é permitido. Deve-se notar também que as solicitações enviadas por diferentes subdomínios, portas diferentes do mesmo domínio ou diferentes protocolos do mesmo domínio também são consideradas domínios cruzadas e podem basicamente ser classificados nas seguintes categorias:
(1) http://www.baidu.com envia uma solicitação para http://www.cxyblog.com
(2) http://www.cxyblog.com envia uma solicitação para http://image.cxyblog.com
(3) http://www.baidu.com:8000 Envie uma solicitação para http://www.cxyblog.com
(4) http://www.cxyblog.com envia uma solicitação para https://www.cxyblog.com
(5) http://www.cxyblog.com envia uma solicitação para http://112.65.242.67 (assumindo que o IP correspondente ao nome de domínio www.cxyblog.com seja 112.65.242.67)
Todas as cinco situações acima são solicitações de domínio cruzado.
Quando as solicitações de domínio cruzado serão usadas?
Às vezes, quando precisamos usar o JavaScript para executar operações do AJAX, encontraremos esse tipo de operação de solicitação de domínio cruzado.
Por que a solicitação de domínio cruzado não pode ser implementado diretamente usando o JavaScript?
Por razões de segurança, o navegador não permite que o JavaScript solicite recursos de domínio cruzado devido a restrições à política homóloga do JavaScript.
Como resolver o problema que o JavaScript não pode implementar solicitações de domínio cruzado?
A solução usada neste artigo é usar o Flyjsonp para implementar solicitações de domínio cruzado. O Flyjsonp é uma biblioteca de classe JavaScript leve, também conhecida como plug-in json. O tamanho total após a compactação é de cerca de 3kb e nenhuma outra estrutura precisa ser suportada.
Endereço oficial do site Flyjsonp: http://alotaiba.github.com/flyjsonp/
Então, como usar a biblioteca de classes Flyjsonp para implementar solicitações de domínio cruzado?
(1) Primeiro, você precisa carregar o script JavaScript de Flyjsonp, ou seja:
<Script Language = "javascript" src = "http://www.cxyblog.com/flyjsonp.min.js"> </script>
(2) Em seguida, para inicializar a instância do Flyjsonp, a depuração do parâmetro pode ser definida como true ou falsa, ou seja: Flyjsonp.init ({Debug: true}), o que significa se abrir as informações de depuração e o valor do parâmetro é verdadeiro ou falso;
(3) Em seguida, use o método GET ou POST para solicitar dados. O código de exemplo específico é o seguinte:
//FlyJSONP implements cross-domain GETfunction getData(){ FlyJSONP.init({debug:true});//Initializes an instance of FlyJSONP, the parameter debug can be set to true or false FlyJSONP.get({ url:'http://www.cxyblog.com/article.json',//The URL parameters of the target Solicitação: {// Limite de parâmetro de solicitação: 5}, sucesso: function (dados) {// console.log (dados); an instance of FlyJSONP, the parameter debug can be set to true or false FlyJSONP.post({ url:'http://www.cxyblog.com/article/new', parameters:{ username:'cxyblog', api_key:'123456', title:'FlyJSONP', description:'test' }, success:function(data){ alerta (dados);}});}NOTA: Quando o servidor sai para o cliente, a saída deve ser uma string json, caso contrário, o cliente não poderá recebê -lo.
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.