2015-09-19 2 views
1

поэтому я пытаюсь отправить данные в виде JSON в файл Python, однако мой Python Я получаю ошибкуUncaught TypeError: d.type.toUpperCase не является функция

неперехваченного TypeError: d.type .toUpperCase не является функцией

Я новичок в JS, так что я не знаю, как полностью работает все, но я просто добавить в GET по POST потому что до этого я получаю 405 ошибки.

Теперь, я получаю эту ошибку d.type.toUpperCase. Вот мой код. Пожалуйста помоги!!

JavaScript:

function on_request_success(response) { 
    console.debug('response', response); 
    document.write("Success!!!"); 
} 

function on_request_error(r, text_status, error_thrown) { 
    console.log(r); 
    console.debug('error' + text_status + ", " + error_thrown + ":\n" + r.responseText); 
    document.write("Failure line 11"); 
} 

var request = {"Data":"Success!!"}; 

function addTrack() { 
    $.ajax({ 
    url: 'http://mattprice09.github.io/addTrack.py', 
    type: ['GET','POST'], 
    cache: false, 
    data: JSON.stringify(request), 
    contentType: 'application/json', 
    processData: false, 
    success: on_request_success, 
    error: on_request_error 
}); 
} 

Python:

import json 
import sys 

request = json.load(sys.stdin) 

file_open = open('http://mattprice09.github.io/database.txt', a) 
file.write(request) 
file.close() 
+0

Вы не можете открыть URL для записи; это не файл. Не то, чтобы это вызвало ошибку, которую вы опубликовали, код Python, который вы опубликовали, не может поднять. Что такое * полная * трассировка исключения? Вы уверены, что вызываете правильный URL? –

+0

Кроме того, хостинг github.io не позволяет использовать сценарии Python, поэтому 'http: // mattprice09.github.io/addTrack.py', конечно же, не выполняется. –

+0

Хорошо, спасибо. Я выясню, как открыть URL-адрес вместо файла. Полный стек: f.extend.ajax \t @ \t jquery.min.js: 4 addTrack \t \t @ tester.js: 17 (анонимной функции) \t @ \t index.html: 12 – Matt

ответ

0

Вы должны установить type аргумент в строку, а не список:

type: 'POST', 

От $.ajax() documentation:

type (default: 'GET')
Type: String
An alias for method . You should use type if you're using versions of jQuery prior to 1.9.0.

Ошибка указывает на то, что список не может быть верхний.

Однако, вы будете иметь другие основные вопросы здесь:

  • GitHub страницы не поддерживает серверные сценарии. Ваш код Python не будет выполнен.
  • Вы не можете открыть удаленный URL для записи; функция open() может открывать файлы только в локальной файловой системе.
+0

О, ничего себе. Хорошо. У меня были проблемы с часами, пытаясь выяснить способ чтения/записи из TXT-файла. Уловка заключается в том, что файл должен быть доступен для чтения/записи нескольким пользователям одновременно. Я полагал, что Питон будет лучше среднего человека. Смогу ли я запустить скрипт Python, если я загружу его в другое место? – Matt

+0

@Matt: вам нужно будет сделать больше работы для обработки параллелизма, если вы хотите, чтобы несколько пользователей могли писать (подумайте о блокировке или даже переключитесь на базу данных). Сценарий не будет работать напрямую; вам нужно привязать его к любой системе, которую вы используете, чтобы разговаривать с Интернетом. Возможно, взгляните на такие рамки, как [Flask] (flask.pocoo.org/docs/0.10 /), и найдите себе хостера, который может выполнять WSGI. Heroku может, Google App Engine может, Amazon Cloud может и т. Д. –

+0

Хорошо, спасибо. Так что .txt-файлы вообще не работают из-за проблем с параллелизмом? – Matt

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