Diskuze: javascript GET httprequest s upravou hlavicky
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 8 zpráv z 8.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.


html:
<HTML>
<HEAD>
<script type="text/javascript">
function getHttp(theUrl)
{
var request = new XMLHttpRequest();
request.open( "GET", theUrl, true );
request.setRequestHeader( "USER", "service" );
request.send( null );
return request.responseText;
}
</script>
</HEAD>
<BODY>
<button onclick="getHttp('http://localhost:9000/user/id/1')">Click
me</button>
</BODY>
</HTML>
Chyba:
XMLHttpRequest cannot load http://localhost:9000/user/id/1. No
'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://localhost:8000' is therefore not allowed access. The response
had HTTP status code 401.
CORS bych mel mit zadany spravne, ale obcas se objevuje, kdyz chybi cil pozadavku. SKutecna chyba bude asi HTTP status code 401 -> Unauthorized
Pokud vím, tak hodně prohlížečů na localhostu CORS blokuje. Musíš buďto v prohlížeči povolit tuhle možnost (například chrome jde spustit s flagou --disable-web-security), použít pro klienta i server stejný HTTP server nebo ty požadavky posílat přes nějakou proxy.
Diky za odpoved!
mam chrome Verze 43.0.2357.124 m pustil jsem ho chrome.exe
--disable-web-security ale CORS zlobi porad:
XMLHttpRequest cannot load http://localhost:9000/user/id/1. No
'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://localhost:8000' is therefore not allowed access. The response
had HTTP status code 401.
Do hlavicky uz cpu i:
request.setRequestHeader('Access-Control-Allow-Origin', '*');
request.setRequestHeader('Access-Control-Allow-Methods', 'GET');
zkusim rozjet webovy server na IP adrese a do hosts zadat jmeno, aby to neslo pres localhost.
Teď jsem to zkoušel ve stejné verzi chromu a jde to i bez té flagy. Podle té chyby vůbec v odpovědi serveru nemáš Access-Control-Allow-Origin. Na serveru přidej k odpovědi hlavičku Access-Control-Allow-Origin: *
Pouzivam Apache 2.2 na win 7, v httpd.conf mam oddil:
DocumentRoot "C:\Users\UI570221\Install\Apache22\htdocs\app"
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
Header set Access-Control-Allow-Origin "*"
</Directory>
<Directory "/Apache22/htdocs/app">
AllowOverride None
Order allow,deny
Allow from all
Header set Access-Control-Allow-Origin "*"
</Directory>
uz nevim kam bych tu deklaraci vecpal..
Muzu samozrejme zkusit jiny webserver..
Ale podle chyby bude problem v tom, ze tu deklaraci musim mit na tom cilovem
serveru a ne na tom odkud jde pozadavek, ze? Coz by vysvetlovalo me marne
snazeni 
XMLHttpRequest cannot load http://10.42.18.64:9000/user/id/1. No
'Access-Control-Allow-Origin' header is present on the requested
resource.
Ahoj. Mě to jede normálně, akorát mi to s daty pošle i celou šablonu webu(kód html). Nevíš jak se tomu dá zabránit, aby se to html neposílalo?
var app = angular.module('myApp', []);
app.controller('userCtrl', function($scope, $http){
$scope.users =[];
$http.get("http://projekt4.net/chat/get")
.success(function (response) {$scope.users = response;})
.error(function(){$scope.users= [];});
});
Odpověď vypadá takto:
{[{"name":"martin","id":12},{"name":"tomas","id":31},{"name":"nikola","id":34}]
<!DOCTYPE html....... hromada html, které nechci posílat.
Zobrazeno 8 zpráv z 8.