javascript
  • ajax
  • web-services
  • cors
  • 2016-05-13 2 views 0 likes 
    0

    im in проблема. Я получил это.CORS проблема не может решить jquery, laravel5.2

    function soapRequest() 
     
        { 
     
         var soap_str=''; 
     
         soap_str+='<?xml version="1.0" encoding="UTF-8"?>'; 
     
         soap_str+='<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"'; 
     
         soap_str+='xmlns:ns1="https://www.pagofacil.net/st/public/Wsstransaccion/?wsdl"'; 
     
         soap_str+='xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"'; 
     
         soap_str+='xmlns:xsd="http://www.w3.org/2001/XMLSchema"'; 
     
         soap_str+='xmlns:ns2="http://xml.apache.org/xml-soap"'; 
     
         soap_str+='xmlns:enc="http://www.w3.org/2003/05/soap-encoding">'; 
     
         soap_str+='<env:Body>'; 
     
         soap_str+=' <ns1:transaccion env:encodingStyle="http://www.w3.org/2003/05/soapencoding">'; 
     
         soap_str+=' <param0 xsi:type="ns2:Map"><item><key xsi:type="xsd:string">nombre</key><value xsi:type="xsd:string">Juan A</value></item><item><key xsi:type="xsd:string">apellidos</key>   <value xsi:type="xsd:string">Lopez Hernández</value></item> <item>   <key xsi:type="xsd:string">numeroTarjeta</key>   <value xsi:type="xsd:string">557956789</value>  </item>  <item>   <key xsi:type="xsd:string">cp</key>   <value xsi:type="xsd:string">11560</value>  </item>  <item>   <key xsi:type="xsd:string">cvt</key>   <value xsi:type="xsd:string">123</value>  </item>  <item>   <key xsi:type="xsd:string">monto</key>   <value xsi:type="xsd:string">100</value>  </item>  <item>   <key xsi:type="xsd:string">mesExpiracion</key>   <value xsi:type="xsd:string">10</value>  </item>  <item>   <key xsi:type="xsd:string">anyoExpiracion</key>   <value xsi:type="xsd:string">15</value>  </item>  <item> <key xsi:type="xsd:string">idSucursal</key>   <value xsi:type="xsd:int">1</value>  </item>  <item>   <key xsi:type="xsd:string">idUsuario</key>   <value xsi:type="xsd:int">1</value>  </item>  <item>   <key xsi:type="xsd:string">idServicio</key>   <value xsi:type="xsd:int">3</value>  </item>  <item>   <key xsi:type="xsd:string">telefono</key>   <value xsi:type="xsd:string">5550220910</value>  </item>  <item>   <key xsi:type="xsd:string">celular</key>   <value xsi:type="xsd:string">555</value>  </item>  <item>   <key xsi:type="xsd:string">calleyNumero</key>   <value xsi:type="xsd:string">Anatole France 311</value>  </item>  <item>   <key xsi:type="xsd:string">colonia</key>   <value xsi:type="xsd:string">Polanco</value>  </item>  <item>   <key xsi:type="xsd:string">municipio</key>   <value xsi:type="xsd:string">Miguel Hidalgo</value>  </item>  <item>   <key xsi:type="xsd:string">estado</key>   <value xsi:type="xsd:string">Distrito Federal</value>  </item>  <item>   <key xsi:type="xsd:string">pais</key>   <value xsi:type="xsd:string">Mexico</value>  </item>  <item>   <key xsi:type="xsd:string">email</key>   <value xsi:type="xsd:string">[email protected]</value>  </item>  <item>   <key xsi:type="xsd:string">param1</key>   <value xsi:type="xsd:string"/>  </item>  <item>   <key xsi:type="xsd:string">param2</key>   <value xsi:type="xsd:string">2</value>  </item>  <item> <key xsi:type="xsd:string">param3</key>   <value xsi:type="xsd:string">3</value>  </item>  <item>   <key xsi:type="xsd:string">param4</key>   <value xsi:type="xsd:string"/>  </item>  <item>   <key xsi:type="xsd:string">param5</key>   <value xsi:type="xsd:string"/>  </item>  </param0> '; 
     
         soap_str+='</ns1:transaccion> </env:Body> </env:Envelope>'; 
     
         var str=soap_str; 
     
         function createCORSRequest(method,url) 
     
         { 
     
          var xhr= new XMLHttpRequest(); 
     
          if ("withCredentials" in xhr){ 
     
           xhr.open(method,url,false); 
     
          } 
     
          else 
     
          { 
     
           //CORS not supported 
     
           console.log("CORS not supported"); 
     
           alert("CORS not supported"); 
     
           xhr=null; 
     
          } 
     
          return xhr; 
     
         }   
     
         var xhr= createCORSRequest("POST","https://www.pagofacil.net/st/public/Wsstransaccion/"); 
     
         
     
         alert(xhr); 
     
         
     
         if(!xhr) 
     
         { 
     
          console.log("xhr issues"); 
     
          return; 
     
         } 
     
    
     
         xhr.onload = function() 
     
         { 
     
          var results = xhr.responseText; 
     
          console.log(results); 
     
         } 
     
    
     
         xhr.setRequestHeader('Content-Type','text/xml'); 
     
         xhr.setRequestHeader("Access-Control-Allow-Origin","http://localhost:8000/");  
     
         alert(str); 
     
         xhr.send(str); 
     
        } 
     
        soapRequest();

    я получил следующие ошибки. 1-register: 895 ОПЦИИ pagofacil.net/st/public/Wsstransaccion/ 500 (Внутренняя ошибка службы) 2-register: 895 XMLHttpRequest не может загрузить pagofacil.net/st/public/Wsstransaccion/. Ответ на запрос перед полетом не проходит проверку контроля доступа. Нет заголовка «Access-Control-Allow-Origin» на запрошенном ресурсе. Происхождение 'http://localhost:8000' поэтому не допускается. В ответе был код состояния HTTP 500. 3-register: 895 Uncaught NetworkError: Не удалось выполнить 'send' on 'XMLHttpRequest': не удалось загрузить 'pagofacil.net/st/public/Wsstransaccion/'.

    Я пробовал REST, JSON Post, и у меня была проблема с CORS с SOAP. Я даже пытался отключить опцию безопасности CORS на mozilla, но не работал (такая же ошибка).

    Я не ищу решение здесь, но мне интересно, где я могу искать. Спасибо всем.

    Обновление 16-05-2016 Этот инструмент получил и получил информацию об этом. https://www.pagofacil.net/st/public/Wsrtransaccion/index/format/json?method=transaccion&data[nombre]=Juan&data[apellidos]=Lopez&data[numeroTarjeta]=557956789&data[cvt]=123&data[cp]=11560&data[mesExpiracion]=10&data[anyoExpiracion]=18&data[monto]=6&data[idSucursal]=60f961360ca187d533d5adba7d969d6334771370&data[idUsuario]=62ad6f592ecf2faa87ef2437ed85a4d175e73c58&data[idServicio]=3&data[email][email protected]&data[telefono]=5550220910&data[celular]=555&data[calleyNumero]=AnatoleFrance311&data[colonia]=Polanco&data[municipio]=Migueldalgo&data[estado]=DistritoFederal&data[pais]=Mexico

    В короткие сроки сервер pagofacil.net не разрешает CORS.

    ответ

    0

    Я думаю, причина в том, что сервер не разрешает запрос OPTIONS, указывая, что они не разрешают CORS. У меня есть сервер, на котором включена CORS и работает curl 'https://...myserver.../' -I -X OPTIONS -H 'Access-Control-Request-Method: POST' -H 'Origin: http://localhost:8000/' возвращает следующие заголовки:

    HTTP/1.1 200 OK 
    Content-Length: 0 
    Server: Microsoft-IIS/7.0 
    Access-Control-Allow-Origin: * 
    X-Powered-By: ASP.NET 
    Date: Sat, 14 May 2016 07:06:00 GMT 
    Set-Cookie: SERVERID=mon03; path=/ 
    Cache-control: private 
    

    В основном это говорит, что «Вы можете сделать запрос POST от любого происхождения».

    Выдача же завиток команду против вашего сервера curl 'https://www.pagofacil.net/st/public/Wsstransaccion/' -I -X OPTIONS -H 'Access-Control-Request-Method: POST' -H 'Origin: http://localhost:8000/'

    ... возвращает

    HTTP/1.1 500 Internal Service Error 
    Date: Sat, 14 May 2016 07:06:09 GMT 
    Server: Apache/2.2.3 (Red Hat) 
    X-Powered-By: PHP/5.2.17 
    Content-Length: 269 
    X-XSS-Protection: 1; mode=block 
    X-Content-Type-Options: nosniff 
    Connection: close 
    Content-Type: text/xml; charset=utf-8 
    

    «Внутренняя ошибка службы» указывает на то, что вы не можете сделать запрос OPTIONS и поэтому вы не можете сделать запрос CORS вы пытаетесь сделать.

    Если сервер не разрешает CORS, вы не можете сделать ничего, кроме того, что вы запрашиваете их для его включения, или направьте свой вызов через собственный прокси-сервер, где вы включите CORS. Затем этот сервер может выполнить запрос до pagofacil и вернуть данные вам.

    +0

    Большое спасибо, не пропустите с его третьей стороной. –

    Смежные вопросы