Witam
posiadam aplikacje webową, i napotkałem duży problem bo muszę dorobić do niego moduł do drukarki fiskalnej, ale większość problemów rozwiałem albo przynajmniej mam pomysł na nie, ale do rzeczy.
Połączyłem drukarkę fiskalna z skryptem js i html'em za pomocą Activex.
I tutaj tutaj mam problem bo Activex działa tylko lokalnie(przynajmniej tak wyszło z moich testów ale nie jestem pewien, mogę się mylić), ok, to zrobiłem ten moduł lokalnie czyli css js i html "w pełni działający" moduł lokalnie na komputerze i wszystko ładnie smiga, ALE teraz potrzebuje wymiany danych z baza danych na serwerze, i tutaj myślałem ze mi pomoże AJAX ale cały czas dostaje błąd - status = 0 czyli Not connect. Verify Network. czyli co nie da się lokalnie korzystać z ajaxa?
script w html'u jest na razie trywialny do testów tylko:
<script> ajax = function (ean13){ $.ajax({ type: "POST", url: "www.mojastrona.pl/sklep/ajax/ajax_szukaj_ean.php", // z -> 'htt ps://www.mojas....' tez było data : { ean13: ean13 }, dataType: "json", success: function(response){ console.log(response); } }); } </script>
<?php http://www.php.net/echo json_encode(http://www.php.net/array( 'success' => '1', 'text' => 'oto twoj product...' )); ?>
1. Dodaj protokół do URL. Choć skoro to wywołanie lokalne (jak rozumiem w ramach tej samej domeny), to wystarczy ścieżka bezwzględna.
2. Sprawdź konsolę przeglądarki oraz zakładkę sieciową, aby sprawdzić jaka jest (jeśli jest) odpowiedź na żądanie.
Aby działało zdalnie serwer docelowy musi mieć zdefiniowaną politykę Access-Control-Allow-Origin. Poczytaj o CORS.
dziękuje wystarczyło dodać jedną linie do php na serwerze dziękuje za podpowiedz.
Witam piszę ponownie w tej sprawie bo już nie mam pomysłu i chyba zostałem zaszachowany
Potrzebuje odpalić skrypt lokalnie i to na IE, co zrodziło tyle problemow że już nie mam pomysłu
// Poprzedni temat zadziałał beż zarzutu na chrome
chrome:
- ajax działa lokalnie (wszędzie), ale nie działa ActiveX
IE:
- ajax działa jak jest na serwerze(nawet dwóch rożnych serwerach i domenach), ale NIE działa ActiveX
- ajax nie działa loklanie(czyli C:\Script\index.html), ale działa ActiveX
I co teraz mam zrobić żeby wszystko działało ? proszę o jakaś małą podpowiedz.
Pomysły na razie to:
- poszukać wtyczki do chroma na ActiveX - znalazłem ale chrome mi cały czas wyłącza go bo nie jest ze sklepu chrome i z tego co wyczytałem to nie da się jej włączyć w takim przypadku.
- dodać do zaufanych jak napisano tutaj: http://stackoverflow.com/questions/23205315/cors-with-ie11-access-denied-with-ssl-to-localhost?noredirect=1&lq=1 - też nie pomogło
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" lang="pl"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="robots" content="NOFOLLOW, NOINDEX"> <script type='text/javascript' src="http://cdnjs.cloudflare.com/ajax/libs/jquery-ajaxtransport-xdomainrequest/1.0.1/jquery.xdomainrequest.min.js"></script> <script> var contentType ="application/x-www-form-urlencoded; charset=utf-8"; if(window.XDomainRequest) // for IE8,IE9 contentType = "text/plain"; ajax = function (ean){ $.ajax({ url:"http://199.77.156.43/ajax/ajax_shop.php", data: { ean: ean }, type:"POST", dataType:"json", contentType:contentType, success:function(data) { alert("Data: "+JSON.stringify(data)); }, error:function(jqXHR,textStatus,errorThrown) { alert("You can not send Cross Domain AJAX requests: "+errorThrown); // -> na IE daje "No Transport" } }); } $(document).ready(function() { $(document).on('click', '#yes-btn', function(event) { event.preventDefault(); /* Act on the event */ ajax( $("#ean13").val() ); }); }); </script> </head> <body...
<?php http://www.php.net/header('Access-Control-Allow-Origin: *'); http://www.php.net/header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS'); if(http://www.php.net/isset($HTTP_RAW_POST_DATA)) { http://www.php.net/parse_str($HTTP_RAW_POST_DATA,$arr); http://www.php.net/echo json_encode($arr); } else { http://www.php.net/echo json_encode($_POST); } ?>
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)