de-vraag
  • Pytania
  • Tagi
  • Użytkownicy
Powiadomienia
Nagrody
Rejestracja
Po zarejestrowaniu się, będziesz otrzymywać powiadomienia o odpowiedziach i komentarzach do swoich pytań.
Zaloguj się
Brak tłumaczeń pasujących do Twojego wyszukiwania Jeśli masz już konto, zaloguj się, aby sprawdzić nowe powiadomienia.
Za dodane pytania, odpowiedzi i komentarze przewidziane są nagrody.
Więcej
Źródło
Edytuj
 php_nub_qq
php_nub_qq
Question

HTTP Content-Type Header i JSON

Zawsze starałem się unikać używania większości właściwości protokołu HTTP'ze względu na strach przed nieznanym.

Powiedziałem sobie jednak, że dziś stawię czoła strachowi i zacznę świadomie używać nagłówków. Od jakiegoś czasu staram się wysyłać dane json do przeglądarki i od razu je wykorzystywać. Na przykład, jeśli mam funkcję Ajax handler na ready state 4, która wygląda tak:

function ajaxHandler(response){
    alert(response.text);
}

I mam ustawiony nagłówek content-type w moim kodzie PHP:

header('Content-Type: application/json');
echo json_encode(array('text' => 'omrele'));

Dlaczego nie mogę'uzyskać bezpośredniego dostępu do właściwości z funkcji obsługi, gdy przeglądarka jest wyraźnie poinformowana, że przychodzące dane to application/json?

129 2013-12-16T20:30:52+00:00 3
 php_nub_qq
php_nub_qq
Edytowane pytanie 30. lipca 2019 в 10:44
Programowanie
http
javascript
php
json
Popular videos
1.4: JSON - Working with Data and APIs in JavaScript
1.4: JSON - Working with Data and APIs in JavaScript
3 lata temu
POST form-data file upload + JSON
POST form-data file upload + JSON
1 rok temu
Part 5 - Postman - Http Post (JSON Body And File Upload) (Raw and Multipart Formdata)
Part 5 - Postman - Http Post (JSON Body And File Upload) (Raw and Multipart Formdata)
1 rok temu
Learn JSON in 10 Minutes
Learn JSON in 10 Minutes
3 lata temu
JavaScript Tip: Using fetch to Load a JSON File
JavaScript Tip: Using fetch to Load a JSON File
3 lata temu
2- HTTP POST- PostAsync and PostAsJsonAsync - Arbitrary JSON Structures | C# and HttpClient
2- HTTP POST- PostAsync and PostAsJsonAsync - Arbitrary JSON Structures | C# and HttpClient
1 rok temu
What is the correct JSON content type? Stackoverflow Q/A explained
What is the correct JSON content type? Stackoverflow Q/A explained
11 miesięcy temu
What is the correct JSON content type
What is the correct JSON content type
7 lat temu
10. C# || HttpClient || Accepting Response in JSON or XML format.
10. C# || HttpClient || Accepting Response in JSON or XML format.
2 lata temu
HTTP Crash Course & Exploration
HTTP Crash Course & Exploration
3 lata temu
PHP : HTTP Content-Type Header and JSON
PHP : HTTP Content-Type Header and JSON
4 miesiące temu
JavaScript : HTTP Content-Type Header and JSON
JavaScript : HTTP Content-Type Header and JSON
4 miesiące temu
Node.js - HTTP - Setting Content-Type header
Node.js - HTTP - Setting Content-Type header
8 lat temu
JSON vs JSONp with Correct Content Type
JSON vs JSONp with Correct Content Type
7 miesięcy temu
jQuery : The usage of `header("Content-type:application/json");`
jQuery : The usage of `header("Content-type:application/json");`
3 miesiące temu
« Poprzedni
Następny »
Solution / Answer
Rocket Hazmat
Rocket Hazmat
16. grudnia 2013 в 8:48
2013-12-16T20:48:48+00:00
Więcej
Źródło
Edytuj
#23123939

Nagłówek Content-Type jest po prostu używany jako informacja dla twojej aplikacji. Przeglądarka nie dba o to, co to jest. Przeglądarka po prostu zwraca Ci dane z wywołania AJAX. Jeśli chcesz przetworzyć je na JSON, musisz to zrobić samodzielnie.

Nagłówek jest tam po to, aby Twoja aplikacja mogła wykryć jakie dane zostały zwrócone i jak powinna je obsłużyć. Musisz spojrzeć na nagłówek, i jeśli jest to application/json to sparsować go jako JSON.

Tak właśnie działa jQuery. Jeśli nie powiesz mu, co zrobić z wynikiem, użyje Content-Type, aby wykryć, co z nim zrobić.

Luke Stevenson
Luke Stevenson
Edytowana odpowiedź 28. stycznia 2017 в 2:38
124
0
Among Amrul
Among Amrul
21. lipca 2014 в 6:06
2014-07-21T06:06:12+00:00
Więcej
Źródło
Edytuj
#23123940

Content-Type: application/json` jest tylko nagłówkiem treści. Nagłówek treści jest tylko informacją o typie zwracanych danych, np::JSON,image(png,jpg,etc..),html.

Należy pamiętać, że JSON w JavaScript jest tablicą lub obiektem. Jeśli chcesz zobaczyć wszystkie dane, użyj console.log zamiast alert:

alert(response.text); // Will alert "[object Object]" string
console.log(response.text); // Will log all data objects

Jeśli chcesz, aby alert zawierał oryginalną zawartość JSON jako ciąg znaków, dodaj pojedyncze cudzysłowy ('):

echo "'" . json_encode(array('text' => 'omrele')) . "'";
// alert(response.text) will alert {"text":"omrele"}

Nie używaj podwójnych cudzysłowów. Będzie to dezorientować JavaScript, ponieważ JSON używa podwójnych cudzysłowów na każdej wartości i kluczu:

echo '<script>var returndata=';
echo '"' . json_encode(array('text' => 'omrele')) . '"';
echo ';</script>';

// It will return the wrong JavaScript code:
<script>var returndata="{"text":"omrele"}";</script>
Peter Mortensen
Peter Mortensen
Edytowana odpowiedź 27. lipca 2019 в 7:26
7
0
Alex Vera
Alex Vera
4. marca 2016 в 9:22
2016-03-04T21:22:53+00:00
Więcej
Źródło
Edytuj
#23123941

Poniższy kod pomaga mi zwrócić obiekt JSON dla JavaScript na front-endzie

Mój kod szablonu

template_file.json

{
    "name": "{{name}}"
}

Kod wspierany przez Pythona

def download_json(request):
    print("Downloading JSON")
    # Response render a template as JSON object
    return HttpResponse(render_to_response("template_file.json",dict(name="Alex Vera")),content_type="application/json")    

Plik url.py

url(r'^download_as_json/$', views.download_json, name='download_json-url')

kod jQuery dla frontendu

  $.ajax({
        url:'{% url 'download_json-url' %}'        
    }).done(function(data){
        console.log('json ', data);
        console.log('Name', data.name);
        alert('hello ' + data.name);
    });
Peter Mortensen
Peter Mortensen
Edytowana odpowiedź 27. lipca 2019 в 7:30
0
0
Dodaj pytanie
Kategorie
Wszystkie
Technologia
Kultura / Rekreacja
Życie / Sztuka
Nauka
Profesjonalny
Biznes
Użytkownicy
Wszystkie
Nowy
Popularny
1
Zuxriddin Muydinov
Zarejestrowany 11 godzin temu
2
Денис Анненский
Zarejestrowany 2 dni temu
3
365
Zarejestrowany 1 tydzień temu
4
True Image
Zarejestrowany 1 tydzień temu
5
archana agarwal
Zarejestrowany 1 tydzień temu
DA
DE
EL
ES
FR
ID
IT
JA
KO
LT
LV
NL
PL
PT
RU
ZH
© de-vraag 2022
Źródło
stackoverflow.com
na podstawie licencji cc by-sa 3.0 z przypisaniem