我使用Javascript动态调用我的文件isbnAPI.py。当用户离开表单输入时,javascript将isbn输入添加到字符串“isbnAPI.py?isbn=”并发出GET请求。
我遇到的问题是对python文件的调用正在返回整个python,因为我将它复制到下面。 this.responseText
字面上返回整个python文件而不是标题。
有人可以帮我弄清楚为什么会这样吗?
#isbnAPI.py
import urllib
import json
import urlparse
#serviceurl is the base url waiting for isbn input of either 10 or 13 digits
serviceurl = 'https://www.googleapis.com/books/v1/volumes?q=isbn:'
#private Google Books API key altered for StackOverflow
key='&key=092j3k2j323kjnkjFAKEKEY'
fields='&fields=items(volumeInfo/title,volumeInfo/authors)'
#This is where the url should be coming in
link = request
parsed = urlparse.urlparse(link, allow_fragments=False)
isbn = urlparse.parse_qs(parsed.query)['isbn'][0]
url = serviceurl + isbn + key +fields
uh = urllib.urlopen(url)
data = uh.read()
try:
js = json.loads(data)
except:
js = None
print str(js["items"][0]["volumeInfo"]["title"])
HTML文件w / javascript in script tag for readability
<br>
<input type="text" id="" name="isbn" value="<?php echo $Isbn; unset($_SESSION['Isbn']); ?>"
placeholder="" onkeyup="getTitle(this.value)">
<br>
<script>
function getTitle(str) {
var xhttp;
if (str.length == 0) {
return;
}
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
console.log(this);
document.getElementById("BookTitle").value = this.responseText;
}
};
xhttp.open("GET", "isbnAPI.py?isbn="+str, true);
xhttp.send();
}
答案 0 :(得分:1)
对于任何想知道的答案,我都应该使用“返回”而不是“打印”来将答案传达回我的javascript代码。